字的传送
8086CPU是16位结构,可以一次传送16位的数据,也就是说可以一次性传送一个字。
mov、add、sub指令
mov 寄存器,数据 比如:mov ax,8mov 寄存器,寄存器 比如:mov ax,bxmov 寄存器,内存单元 比如:mov ax,[0]mov 内存单元,寄存器 比如:mov [0],axmov 段寄存器,寄存器 比如:mov ds,axmov 寄存器,段寄存器 比如:mov ax,dsmov 内存单元,段寄存器 比如:mov [0],csmov 段寄存器,内存单元 比如:mov ds,[0]
add和sub指令同mov一样,都有两个操作对象。
add 寄存器,数据 比如:add ax,8add 寄存器,寄存器 比如:add ax,bxadd 寄存器,内存单元 比如:add ax,[0]add 内存单元,寄存器 比如:add [0],axsub 寄存器,数据 比如:sub ax,9sub 寄存器,寄存器 比如:sub ax,bxsub 寄存器,内存单元 比如:sub ax,[0]sub 内存单元,寄存器 比如:sub [0],ax
注意:add ds,ax是错误的,8086 CPU 规定段寄存器(如ds
)不能用add
等算术指令进行操作。段寄存器只能通过数据传送指令(如mov
)来进行赋值操作。
总结
(1) 字在内存中存储时,要用两个地址连续的内存单元来存放,字的低位字节存放在低地址单元中,高位字节存放在高地址单元中。
(2) 用 mov 指令访问内存单元,可以在 mov 指令中只给出单元的偏移地址,此时,段地址默认在 DS 寄存器中。
(3) [adress] 表示一个偏移地址为 address 的内存单元。
(4) 在内存和寄存器之间传送字型数据时,高地址单元和高 8 位寄存器、低地址单元和低 8 位寄存器相对应。
(5) mov、add、sub 是具有两个操作对象的指令。jmp 是具有一个操作对象的指令。