Debug和汇编编译器masm对指令的不同处理

我们在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]

 

转载于:https://www.cnblogs.com/gkp307/p/9914421.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值