cpu中,用16位寄存器来存储一个字,高8位存放高位字节,低8位存放低位字节。例如:数据20000(4E20 H)在内存中存放的方式为
低--------> 20 H 栈顶
高--------> 4E H 栈底
cpu要读写一个内存的时候,必须先给出这个内存单元的地址,同样是由段地址和偏移地址组成。这个是靠DS寄存器,它用来存放段地址。
mov bx,1000H
mov ds,bx (这里只能将寄存器里的数据传送到ds寄存器,不能写成mov ds,1000H)
mov al,[0]
是将10000H(1000:0)中的数据读到al中
sub指令:
跟add指令一样,都有两个操作对象,有以下几种形式:
sub 寄存器,数据 sub ax,9
sub 寄存器,寄存器 sub ax,bx
sub 寄存器,内存单元 sub ax,[0]
sub 内存单元,寄存器 sub [0],ax
cpu提供入栈和出栈的指令,最基本的两个是 PUSH 和 POP 。
我们可以将某段内存当作栈来使用,这就需要首先确定栈顶的地址,同样是靠“段地址和偏移地址”的方法,对应两个寄存器:段寄存器SS和寄存器SP,任意时刻SS:SP指向栈顶元素。
push ax 表示将ax中的内容存入栈中,它由以下两步完成:
(1)SP=SP-2
(2)将ax中的内容送入SS:SP指向的内存单元处
pop ax 表示从顶底取出数据送入ax中,它由以下两步完成:
(1)将SS:SP指向的内存单元处的数据送入ax中
(2)SP=SP+2