iOS之底層匯編(四)

DS和[address]

  • CPU要讀寫一個(gè)內(nèi)存單元時(shí),必須要先給這個(gè)內(nèi)存單元的地址,在8086中,內(nèi)存地址由段地址和偏移地址組成。
  • 8086中有一個(gè)DS段寄存器,通常用來存放要訪問數(shù)據(jù)的段地址
    mov bx,1000H
    mov ds,bx
    mov al,[0]
    
    • 上面3條指令的作用將10000H(1000:0)內(nèi)存數(shù)據(jù)賦值到al寄存器中
    • mov al,[address]的意思是將DS:address中的內(nèi)存數(shù)據(jù)賦值到al寄存器中
    • 由于al是ax的低8位寄存器,所以將一個(gè)字節(jié)的數(shù)據(jù)賦值給al寄存器
  • 8086不支持將數(shù)據(jù)直接送入段寄存器中,即mov ds,1000H是錯(cuò)誤的

寫幾條指令,將al中的數(shù)據(jù)送入內(nèi)存單元1000H中

mov bx,1000H
mov ds,bx
mov [0],al

字型數(shù)據(jù)的傳遞(2個(gè)字節(jié))

寫出下面指令執(zhí)行后寄存器ax,bx,cx中的值


內(nèi)存
mov ax,1000H
mov ds,ax      
mov ax,[0]
mov bx,[2]
mov cx,[1]
add bx,[1]
add cx,[2]
執(zhí)行過程

大小端

  • 大端模式,是指數(shù)據(jù)的高字節(jié)保存在內(nèi)存的底地址中,而數(shù)據(jù)的低字節(jié)保存在內(nèi)存的高地址中(高低\低高)(Big Endian)
  • 小端模式,是指數(shù)據(jù)的高字節(jié)保存在內(nèi)存的高地址中,而數(shù)據(jù)的低字節(jié)保存在內(nèi)存的低地址中(高高\(yùn)低低) (Little Endian)


注意:ARM既可以工作在大端模式,也可以工作在小端模式

練習(xí)

寫出下面指令執(zhí)行后寄存器ax,bx,cx中的值

內(nèi)存

mov ax,1000H
mov ds,ax
mov ax,11316
mov [0],ax
mov bx,[0]
sub bx,[2]
mov [2],bx
執(zhí)行過程

mov指令

注意:“mov 內(nèi)存單元, 內(nèi)存單元”是不允許的,比如mov[0], [1]

add和sub指令

數(shù)據(jù)段

  • 對于8086來說,在編程時(shí),可以根據(jù)需求,將一組內(nèi)存單元定義為一個(gè)段
  • 我們可以將一組長為N(N<=64KB)、地址連續(xù)、起始地址為16整數(shù)倍的內(nèi)存單元當(dāng)做專門存儲(chǔ)數(shù)據(jù)的的內(nèi)存空間,稱為數(shù)據(jù)段。比如123B0H123B9H這段內(nèi)存空間來存放數(shù)據(jù),我們可以認(rèn)為123B0H123B9H是一個(gè)數(shù)據(jù)段,它的段地址為123BH,長度為10字節(jié)
  • 如何訪問數(shù)據(jù)段中的數(shù)據(jù)
    • 用DS存放數(shù)據(jù)端的段地址,在根據(jù)需用,用相關(guān)指令訪問數(shù)據(jù)段中的具體單元

練習(xí)

各寄存器的初始值:CS=2000H,IP=0,DS=1000H,AX=0,BX=0;
1.寫出CPU執(zhí)行的指令序列(用匯編指令寫出)
2.寫出CPU執(zhí)行完指令后,CS,IP和相關(guān)寄存器中的數(shù)值
3.再次體會(huì):數(shù)據(jù)和程序有區(qū)別嗎?如何確定內(nèi)存中的信息哪些是數(shù)據(jù),哪些又是程序?

mov ax,6622H
jmp 0ff0:0100 ;(段地址0ff0 x 16  = ff00  然后加上偏移地址0100 = 10000H)
mov ax,2000H
mov ds,ax
mov ax,[0008]
moc ax,[0002]

計(jì)算CS和IP的數(shù)值根據(jù)iOS之底層匯編(三)的代碼段CS和IP

  • 注意IP是增加后執(zhí)行指令的
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容