第八章 数据处理的两个基本问题
8.1.1 两个基本问题:
· 处理的数据在什么地方
· 要处理的数据有多长
8.1.2 reg——一个寄存器
sreg——一个段寄存器
8.1.3 关于bx、si、di、bp
· 在8086CPU中,只有这4个寄存器可以用在“[…]”中来进行内存单元的寻址
· 在[…]中,这4个寄存器可以单个出现,或只能以4
种组合出现:bx和si、bx和di、bp和si、bp和di。
· 只要在[…]中使用寄存器bp,而指令中没有显性地给 出段地址,段地址默认就在ss中。
8.2.1 机器指令大致可分为三类:读取、写入、运算
指令执行前,要处理的数据可以在CPU内部、内存、端口。
8.3.1 立即数执行前在CPU的指令缓冲器中;
8.4.1 (内存)寻址方式:
直接寻址
寄存器间接寻址
基址变址寻址
相对基址变址寻址
8.5.1 在没有寄存器名存在的情况下,用操作符X ptr指明内存单元的长度,X在汇编指令中可以为word或byte。
eg: mov word ptr ds:[0], 1
intc word ptr [bx]
inc word ptr ds:[0]
add word ptr [bx], 2
mov byte ptr ds:[0], 1
inc byte ptr [bx]
inc byte ptr ds:[0]
add byte ptr [bx], 2
8.7.1 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存储除法操作的余数。
8.8.1 伪指令 db——定义字节型数据
dw——定义字型数据
dd——定义双字型数据
8.9.1 dup——数据的重复
db 重复的次数 dup(重复的字节型数据)
dw重复的次数 dup(重复的字型数据)
dd 重复的次数 dup(重复的双字数据)
eg: db 3 dup (0) db 0,0,0
dw 3 dup (0,1,2) dw 0,1,2,0,1,2,0,1,2
dd 3 dup (‘abc’,’ABC’) db ‘abcABCabcABCabcABC’