-
关于数据处理的两个重要问题
- 要处理的数据在什么地方?
- 要处理的数据有多长(字节)?
-
bx, bp, bi, si
- 在8086CPU中,只有这四个寄存器可以使用
[...]
- 这四个寄存器可以单个出现,或者能以四种组合出现:
[bx+si], [bx+di], [bp+si], [bp+di]
- 在8086CPU中,只有这四个寄存器可以使用
其中当使用
bx
时,段地址默认是ds
,使用bp
时,段地址默认为ss
-
机器指令处理的数据在什么地方
- 内存单元
- 寄存器
- 端口(本文暂不介绍)
mov ax, [bx] ;内存单元 mov ax, bx ;寄存器 mov ax, idata ;指令缓冲期
-
汇编语言中数据位置的表达
- 立即数(idata)
- 寄存器
- SA:EA
寻址方式
寻址方式 | 常用格式举例 |
---|---|
[bx], [si], [di], [bp] | [bx] |
[bx+idata],[bp+idata],[si+idata],[di+idata] | 用于结构体: [bx].idata;用于数组: idata[bx];用于二维数组: [bx][idata] |
[bx+si],[bx+di],[bp+si],[bp+di] | 用于二维数组: [bx][si] |
[bx+si+idata], [bx+di+idata], [bp+si+idata], [bp+di+idata] | 用于结构体的数组: [bx].idata[si]; 用于二维数组: idata[bx][si] |
-
div指令
形式如下: div reg 或者 div 内存单元- 除数为8位,被除数为16位,则被除数默认在AX
余数存在AH,商存在AL - 除数为16为,被除数为32位,则被除数的高位在DX,低位在AL,
余数存在DX,商存在AX
余高,低商
- 除数为8位,被除数为16位,则被除数默认在AX
dd、 dup
dd:用来定义双字型数据, 32位→4字节→2字→1双字
dup:用来设置数据的重复,形如: 类型 重复的次数 dup (要重复的数据)