一、字单元 存放一个字型数据(16位)的内存单元,由两个地址连续的内存单元组成。
二、DS寄存器 用来存放要访问数据的段地址。
MOV bx,1000H
MOV ds,bx
mov ax,【0】
上面汇编代码说明:将10000H(1000:0)中的数据读取到ax寄存器中。
三、mov,add,sub等一般基本指令
指令 | 例子 | 意义 |
---|---|---|
mov 寄存器,数据 | mov ax,1421H | 将数据1421H读到ax寄存器中 |
mov 寄存器,寄存器 | mov ax,bx | 将bx中数据读到ax中 |
mov 寄存器,内存单元 | mov ax,[0] | 将ds所指内存偏移0的内存上数据读到ax中 |
mov 内存单元,寄存器 | mov [0],ax | 将ax上数据读取到ds所指内存偏移0的内存中 |
mov 段寄存器,寄存器 | mov ds,ax | 将ax上数据读取到ds上。 |
add 寄存器,数据 | add ax,4521H | ax = ax + 4521H |
add 寄存器,寄存器 | add ax,bx | ax = ax + bx |
add 寄存器,内存单元 | add ax,[2] | ax = ax + ds所指内存偏移2的内存上数据 |
add 内存单元,寄存器 | add [2],ax | ds内存偏移2 = ds内存偏移2 + ax |
sub 寄存器,数据 | sub ax,4512H | ax = ax - 4512H |
sub 寄存器,寄存器 | sub ax,bx | ax = ax - bx |
sub 寄存器,内存单元 |
sub ax,[0] | ax = ax - ds所指内存偏移2的内存上数据 |
sub 内存单元,寄存器 | sub [2],ax | ds内存偏移2 = ds内存偏移2 - ax |
四、栈操作指令
push pop 指令。
段寄存器ss,寄存器sp,是专门用来操作栈。
SS:SP 表示指向栈顶元素。
入栈:sp=sp-2。push操作。
出栈:sp=sp+2。pop操作。
栈的范围因为sp寄存器最小值0H,最大是FFFFH,所以一个栈在8086下 最大只有64kB。
此文为读书笔记。源于王爽著 《汇编语言 第3版》。