第八章 数据处理的两个基本问题
- 处理的数据在什么地方
- 要处理的数据有多长
bp寄存器
用法类似于bx,si,di
[bp] 表示的物理地址的段地址为段寄存器ss存的值
指令处理的数据长度标识
一般的寄存器,如ax,al,bh,是可以起到位数标识作用的
但对内存单元的操作就没有这种默认标识
所以需要指明要操作的内存长度
- word ptr
- byte ptr
例子:mov byte ptr [0],ff
div指令
格式:
1 | div reg |
除数:有8位和16位的
- 8位:被除数就是16位的,默认存在ax;结果存在ax中,al为商,ah为余数
- 16位:被除数就是32位的,默认存放在dx和ax中(高16位存在dx,低16位存在ax);结果的商存在ax中,余数存在dx中
例子:计算100001/100 ; 因为要分别为dx和ax赋100001的高16位值和低16位值所以先化为16进制 100001=186A1H
1 | mov dx,1 |
dd伪指令
dd就是用来定义 dword(double word)
dup
定义的时候,用来进行数据的重复
使用格式:
1 | db 重复的次数 dup (重复的字节型数据) |
例子:db 3 dup ('abc','ABC')
定义了18个字节,它们是’abcABCabcABCabcABC’,相当于db 'abcABCabcABCabcABC'
Comments