简洁描述的约定

先看几句代码的解释

mov ax,[0]          将一个内存单元(字单元)放入ax , 内存单元长度为2字节, 存放一个字, 段地址是DS 偏移地址是0

mov al,[0]          将一个内存单元(字节单元)放入ax , 内存单元长度为1字节, 存放一个字节, 段地址是DS 偏移地址是0

0表示的是偏移地址 具体长度(类型)由其操作对象决定

mov ax,[bx]          将一个内存单元(字单元)放入ax , 内存单元长度为2字节, 存放一个字, 段地址是DS 偏移地址是bx中的数值

mov al,[bx]          将一个内存单元(字节单元)放入ax , 内存单元长度为1字节, 存放一个字节, 段地址是DS 偏移地址是bx中的数值

 

为了简洁描述 (ax)表示ax中的数值, (al)表示al中的数值

(21000H)表示物理地址21000H中的内容 既 2000:1000处的内容   2000:1000 = 2000*16+1000 = 21000H

((ds)*16+(bx)) 表示 ADR1: ADR2中的内容, 其中 ADR1是ds中的值 ADR2是bx中的值

注意 (2000:0)  ,  ((ds):1000H) 都是不正确的写法

 

所以 ax中的内容为0010H, 可以表示为 (ax)=0010H

所以 2000:1000处的内容为0010H, 可以表示为 (21000H)=0010H

所以 mov ax,[2], 可以表示为  (ax)=((ds)*16+2)

所以 mov [2],ax, 可以表示为  ((ds*16)+2)=(ax)

push ax 可以描述为   (sp)=(sp)-2  ;  ((ss)*16+(sp))=(ax)

pop ax可以描述为       (ax)=((ss)*16+(sp)) ; (sp)=(sp)+2

用idata表示常量

mov ax,[idata] 表示 mov ax,[1]    或者其他的数字

mov ax,idata 表示 mov ax,2    或者其他的数字

 

切记 mov [bx],ax            中 [bx]只是偏移地址, 段地址在ds中

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值