<汇编语言(第2版)>2011032501

字单元,即存放一个字型数据(16位)的内存单元,由两个地址连续的内存单元组成。

8086CPU有一个DS寄存器,通常用来存放要访问数据的段地址。

从内存单元地址到寄存器:
Mov 寄存器名,内存单元地址
"[...]"表示一个内存单元

从寄存器到内存单元:
Mov 内存单元地址,寄存器名

8086CPU不支持将数据直接送入段寄存器,这是硬件设计定义的。
要放入数据到段寄存器,要通过通用寄存器。比如
mov ax,1000h
mov ds,ax

Mov 段寄存器,寄存器
Mov 寄存器,段寄存器

小结:
Mov 通用寄存器,数据
Mov 寄存器,寄存器
Mov 寄存器名,内存单元地址
Mov 内存单元地址,寄存器名
Mov 段寄存器,寄存器
Mov 寄存器,段寄存器

Add,Sub类似:
Add 通用寄存器,数据
Add 寄存器,寄存器
Add 寄存器名,内存单元地址
Add 内存单元地址,寄存器名

Sub 通用寄存器,数据
Sub 寄存器,寄存器
Sub 寄存器名,内存单元地址
Sub 内存单元地址,寄存器名

PS:试验add ds,ax不能写入,同时add ds,ds,add ax,ds都不能成功,表示add和sub不能对段寄存器使用

栈的操作规则:后进先出LILO
8086CPU提供push,pop,以字为单位操作
任意时刻,SS:SP指向栈顶元素
SS栈段寄存器,SP栈偏移指针

push 寄存器
pop 寄存器
push 段寄存器
pop 段寄存器
push 内存单元
pop 内存单元
原文地址:https://www.cnblogs.com/GoGoagg/p/1995369.html