汇编の小知识
寻址方式
寻址方式 | 含义 | 名称 | 常用格式举例 | 备注 |
---|---|---|---|---|
[idata] |
EA=idata;SA=(ds) | 直接寻址 | [idata] |
|
[bx] |
EA=(bx);SA=(ds) | 寄存器间接寻址 | [bx] |
[si][di][bp] 相同 |
[bx+idata] |
EA=(bx)+idata;SA=(ds) | 寄存器相对寻址 | 用于结构体:[bx].idata 用于数组:idata[si] idata[di] 用于二维数组[bx][idata] |
[bx] 可用[si][di][bp] 替换 |
[bx+si] |
EA=(bx)+(si);SA=(ds) | 基址变址寻址 | 用于二维数组:[bx][si] |
[bx] 可用[bp] 替换 [si] 可用[di] 替换 |
[bx+si+idata] |
EA=(bx)+(si)+idata;SA=(ds) | 相对基址变址寻址 | 用于表格(结构)中的数组项:[bx].idata[si] 用于二维数组:idata[bx][si] |
[bx] 可用[bp] 替换 [si] 可用[di] 替换 |
注意:[bx]
与[bp]
不可同时出现。当以[bp]
寄存器寻址时,SA默认为(ss)
标志寄存器
zf是零标志,pf是奇偶标志,sf是符号标志,cf是进位标志,of是溢出标志
X ptr
在无寄存器指名处理数据长度时,用操作符X ptr
来指名内存单元的长度。
如:byte ptr
word ptr
div指令
div是除法指令,使用div做除法时应注意以下问题。
- 除数:有8位和16位两种,在一个reg或者内存单元中。
- 被除数:如果除数为8位,被除数则为16位,放在ax中。如果除数为16位,则被除数为32位,高16位放在dx中,低16位放在ax中。
- 结果:如果除数为8位,则al存放商,ah存放余数。如果除数为16位,则ax存放商,dx存放余数。
不忘初心方得始终