1. 程式人生 > >Debug和匯編編譯器masm對指令的不同處理

Debug和匯編編譯器masm對指令的不同處理

clas 程序 bsp 源程序 單元 編譯器 內存 訪問內存 idata

我們在Debug和源程序中寫入同樣形式的指令 :

"mov al,[0]","mov bl,[1]","mov cl,[2]","mov dl,[3]",但Debug和編譯器對這些指令中的"[idata]"卻有不同的解釋。Debug將它解釋為"[idata]"是一個內存單元,"idata"是內存單元的偏移地址;而編譯器將"[idata]"解釋為"idata"。

我們在源程序中可以將偏移地址放入bx寄存器中,用[bx]的方式來訪問內存單元。例如我們可以這樣訪問2000:0單元:

mov ax,2000h
mov ds,ax
mov bx,0
mov al,[bx]

也可以這樣訪問:在“[]”的前面顯式地給出段地址所在的段寄存器。

mov ax,2000h
mov ds,ax
mov al,ds:[0]

Debug和匯編編譯器masm對指令的不同處理