bx(偏移位址存放在bx暫存器中)
bx表示偏移位址,偏移的大小,[bx]表示偏移位址內的儲存資料
在debug中可以直接用[ ]表示,masm需要用bx表示,例如在彙編源程式中:mov ax,[0] 會被編譯器當作 mov ax, 0 處理
舉例:
mov ax, 0ffffh
mov ds, ax
用法1:
mov bx, 0
mov ax, [bx] //送入ax暫存器中的是字型資料
mov bx, 1
mov ah, [bx] //送入ah暫存器中的是位元組型資料
mov bx, 2
mov al, [bx] //送入al暫存器中的是位元組型資料
用法2:
mov ax, ds:[0]
mov ah, ds:[1]
mov al, ds:[2]
用法3:
mov bx, 0
mov ax, ds:[bx]
……三者不一樣,前面暫存器的型別決定了暫存器如何儲存偏移位址bx中的資料
乙個記憶體單元8bit,ax儲存16bit,ah和al分別儲存8bit
段位址和偏移位址
該書所使用的cpu是8086,字長16位,資料匯流排寬度為20位。字長如果是16的話,那麼cpu定址範圍是2 16 64k,而資料匯流排寬度是20位的話,那麼通過資料匯流排定址範圍就是2 20 1m 這就是為什麼32位機器2 32 4g只能使用4g記憶體空間的原理 這裡就出現矛盾了,一邊是64k,一...
組合語言 偏移位址綜合應用 雙重迴圈實現
db 1.helloworld db 3.stevejobs db 4.macbook 將上述內容從第三個資料開始向後三個都變成大寫,結果如下 db 1.helloworld db 3.stevejobs db 4.macbook assume cs code,ds data data segmen...
彙編 5 0 BX 和loop指令
1.要完整的描述乙個記憶體單元,需要兩種資訊 1.記憶體單元的位址 2.記憶體單元的長度 型別 2.表示乙個暫存器或乙個記憶體單元中的內容。如 ax 表示ax中的內容。中的元素可以有3種型別 1.暫存器名 2.段暫存器名 3.記憶體單元的實體地址 乙個20位的資料 3.約定符號idata表示常量 用...