前言:
寄存器(内存访问)。
目录:
几个通用寄存器介绍:
AX 寄存器称为累加器,常用于存放算术、逻辑运算中的操作数或结果。另外,所有的I/O指令都要使用累加器与外设接口传递数据。
BX 寄存器称为基址寄存器,常用来存放访问内存时的地址。
CX 寄存器称为计数寄存器,在循环、串操作指令中用作计数器。
DX 寄存器称为数据寄存器,在寄存器间接寻址中的I/O指令中存放I/O端口的地址。
此外,在做双字长乘除法运算时,DX 与 AX 合起来存放一个双字长数(32位),其中 DX 存放高16位,AX 存放低16位。
DS 寄存器和 ES 寄存器:
DS 寄存器和 ES 寄存器:
-
DS 数据段寄存器(Data Segment)
-
ES 附加段寄存器(Extra Segment)
特点:
-
属于段寄存器,不能直接保存数据,只能通过其他的段寄存器保存数据。
-
他们两个一个没有明显的区别,但是DS 是其他指针寄存器的默认段寄存器。(BX,BP,SI,DI)
举个粟子:
假设我们要将 a1 中的数据送入内存单元 10000H 中
那么完整的指令应该是:
mov bx,1000H
mov ds,bx
mov [0],al
因为CPU不能直接将数据直接送入 ds 寄存器中,
所以只能通过其他寄存器送入。
[] 括号表示一个内存单元,0 表示内存单元的偏移地址
mov、add、sub 指令:
mov传送指令mov a,b 将b数据放进a
mov 寄存器, 数据 ---> 比如:mov ax,8
mov 寄存器, 寄存器 ---> 比如:mov ax,bx
mov 寄存器, 内存单元 ---> 比如:mov ax,[0]
mov 内存单元,寄存器 ---> 比如:mov [0],ax
mov 段寄存器, 寄存器 ---> 比如:mov ds,ax
add求和指令 add a,b a=a+b
add 寄存器, 数据 ---> 比如:add ax,8
add 寄存器, 寄存器 ---> 比如:add ax,bx
add 寄存器, 内存单元 ---> 比如:add ax,[0]
add 内存单元,寄存器 ---> 比如:add [0],ax
sub减法指令 sub a,b a=a-b
sub 寄存器, 数据 ---> 比如:sub ax,8
sub 寄存器, 寄存器 ---> 比如:sub ax,bx
sub 寄存器, 内存单元 ---> 比如:sub ax,[0]
sub 内存单元,寄存器 ---> 比如:sub [0],ax
总结
学习真香。