3.1内存中字的存储
字单元,即存放一个字型数据(16位)的内存单元,由两个地址连续的内存单元组成。高地址内存单元中存放字型数据的高位字节,低地址内存单元中只能存放字型数据的低位字节。
3.2ds和address
指令 mov 寄存器,【。。。】
【。。。】是ds寄存器中偏移地址。。。的数据
8086不支持将数据直接送入段寄存器的操作
只能先将数据送入一个一般寄存器,再送入段寄存器中
3.3字的传送
可以让ds指定一个地址在进行3.2指令的操作
3.4mov,add,sub指令
mov :
mov 寄存器,数据
mov 寄存器,寄存器
mov 寄存器,内存单元
mov 内存单元,寄存器
mov 段寄存器,寄存器
add:
add 寄存器,数据
add 寄存器,寄存器
add 寄存器,内存单元
add 内存单元,寄存器
sub:
sub 寄存器,数据
sub 寄存器,寄存器
sub 寄存器,内存单元
sub 内存单元,寄存器
3.5数据段
可以将一组长度为N。地址连续,起始地址为16的倍数的内存单元当作专门存储数据的内存空间即定义了一个数据段
3.6栈
3.7CPU提供的栈机制
8086的出栈入栈都是以字为单位的
3.8栈顶超界的问题
栈满使用push指令入栈,栈空使用pop指令出栈会导致超界
我们在编程时要注意这个问题
3.9push.pop指令
push:
push 寄存器
push 段寄存器
push 内存单元
pop:
同上
3.10栈段
要使push pop 等栈指令访问定义的栈段,则要将ss:sp指向定义的栈段