我们将使用两个描述性的符号reg来表示一个寄存器,用sreg表示一个段寄存器.
reg的集合包括:ax、bx、cx、dx、ah、al、bh、bl、ch、cl、dh、dl、sp、bp、si、di

sreg的集合包括:ds、cs、ss、es

bx、si、di和bp

在8086CPU中,只有bx、si、di和bp这4个寄存器可以用在“[…]”中来进行内存单元的寻址

  在“[…]”中,这4个寄存器可以单个出现,或只能以4种组合出现:bx和si、bx和di、bp和si、bp和di

 只要在“[…]”中使用寄存器bp,而指令中没有显式地给出段地址,则段地址就默认在cs中.



寻址方式小结

指令要处理的数据有多长

 8086CPU的指令,可以处理两种尺寸的数据,byte和word
 在没有寄存器名存在的情况下,用操作符X ptr指明内存单元的长度,X在汇编指令中可以为word或byte.
 push和pop指令只进行字操作



div指令

div指令是除法指令。使用div做除法:
1)除数:有8位和16位两种,在一个寄存器后内存单元中。

2)被除数:默认放在AX或DX和AX中,如果除数为8位,被除数为16位,默认在AX中存放;如果除数为16位,被除数则为32位,在DX和AX中存放,DX存放高位16位,AX存放低位16位。

3)结果:如果除数为8位,则AL存储除法操作的商,ah 存储除法操作的余数;如果除数为16位,则AX存放除数操作的商,DX存储除法操作的余数。

格式如下:
div reg(寄存器集合)
div 内存单元

除数位数 隐含的被除数 余数 举  例
8位 AX AL AH DIV  BH
16位  DX-AX AX DX DIV  BX




伪指令——dd
dd:定义dword型数据,每个双字占用二个连续的字单元(4字节)

dup

dup用来进行数据的重复
使用格式如下:
  db 重复的次数 dup (重复的字节型数据)
  dw 重复的次数 dup (重复的字型数据)
  dd 重复的次数 dup (重复的双字型数据)

例:db 3 dup (0)
db 3 dup (0,1,2)
db 3 dup (‘abc’, ‘ABC’)
dw 3 dup (10h, 2 dup (1,2,3))

打赏