汇编の小知识

寻址方式

寻址方式 含义 名称 常用格式举例 备注
[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做除法时应注意以下问题。

  1. 除数:有8位和16位两种,在一个reg或者内存单元中。
  2. 被除数:如果除数为8位,被除数则为16位,放在ax中。如果除数为16位,则被除数为32位,高16位放在dx中,低16位放在ax中。
  3. 结果:如果除数为8位,则al存放商,ah存放余数。如果除数为16位,则ax存放商,dx存放余数。
posted @ 2021-02-20 23:19  1v7w  阅读(61)  评论(0编辑  收藏  举报