学习《汇编语言》笔记之三——寄存器之内存访问(8086CPU)

时间:2020-11-28 01:27:20

一、字单元  存放一个字型数据(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版》。