Loading

寄存器(内存访问)

内存中字的存储

一个单元存放一个字节,一个字要用两个连续的内存单元来存放。(8086)

DS和[address]

mov bx,1000H #1000H放入bx
mov ds,bx    #1000H放入ds
mov al,[0]   #将内存单元里的数据放入al寄存器中,[0]指的是偏移地址,ds中存储的为段地址

字的传送

8086是16位结构,一次可传16位数据

mov,add,sub指令

mov

mov 寄存器,数据
mov 寄存器,寄存器
mov 寄存器,内存单元
mov 内存单元,寄存器
mov 段寄存器,寄存器
mov 寄存器,段寄存器
mov 内存单元,寄存器
mov 内存单元,段寄存器
mov 段寄存器,内存单元

数据段

将一段内存当作数据段,用ds存放数据段的段地址。

栈是一种具有特殊的访问方式的存储空间。后进先出

CPU提供的栈机制

PUSH ax #将ax中的数据送入栈中。
POP ax #将栈中的数据送入寄存器ax中。

以字为单位
段寄存器SS和寄存器SP
栈顶的段地址存放在SS中,偏移地址存放在SP中。
任意时刻,SS:SP执行栈顶元素
进栈时,从高地址向低地址方向增长

栈顶越界的问题

push和pop指令

push 寄存器
pop 寄存器
push 段寄存器
pop 段寄存器
push和pop也可以在内存单元和内存单元之间传送数据,
push 内存单元
pop 内存单元

问题3.7
将10000H-1000FH这段空间当作栈,初始状态栈是空的,将ax、bx、ds中的数据入栈。
mov ax,1000H
mov ss,ax
mov sp,0010
push ax
push bx
push ds
前面三条命令设置栈的指针指向10010H,表示栈空状态

栈段

栈段的最大容量为64kb

posted @ 2022-03-24 18:16  sovo  阅读(117)  评论(0)    收藏  举报