描述性符号 reg 和 sreg
使用描述性的符号 reg 来表示寄存器,用 sreg 表示一个段寄存器
reg 的集合包括:ax、bx、cx、dx、ah、al、bh、bl、ch、cl、dh、dl、sp、bp、si、di
sreg的集合包括:ds、ss、cs、es
bx、si、di 和 bp
8086 CPU 中,只有 4 个寄存器可以用在 “[…]”中来进行内存单元寻址。(bx、si、bp、di)
mov ax,[bx]
mov ax,[bx+si]
mov ax,[bx+di]
mov ax,[bp]
mov ax,[bp+si]
mov ax,[bp+di]
在 […] 中,这 4 个寄存器可以单个出现,或者只能以 4 种组合出现:bx和si、bx和di、bp和si、bp和di,如下示例: ```shell mov ax,[bx] mov ax,[si] mov ax,[bx+di]
;错误指令 mov ax,[bx+bp] mov ax,[si+di]
3. 只要在 [...] 中使用寄存器 `bp`,而指令中没有显性地给出段地址,段地址就默认在 `ss` 中,如下示例:
```shell
mov ax,[bp] ;含义(ax)=((ss)*16+(bp))
mov ax,[bp+si] ;含义(ax)=((ss)*16+(bp)+(si))
...
div指令
- 除数:有8位和16位两种,在一个reg或内存单元中。
- 被除数:默认放在AX或DX和AX中,如果除数为8位,被除数则为16位,默认在AX中存放:如果除数为16位,被除数则为32位,在DX和AX中存放,DX存放高16位,AX存放低16位。
- 结果:如果除数为8位,则AL存储除法操作的商,AH存储除法操作的余数:如果除数为16位,则AX存储除法操作的商,DX存储除法操作的余数。