AX --------- 通用寄存器之一(累加器,使用频度最高):在乘法和除法指令中存放乘数和乘积,被除数和商
---------X代表16进制的意思,这是16进制的寄存器,有两个高低位的8位寄存器构 AX=AH+AL
---------cpu寄存器用于存储内存中数据的物理地址
BX --------- 通用寄存器之一(基址寄存器,存放存储器地址):在XLAT指令中,作基址寄存器
CX --------- 通用寄存器之一(计数器,常作为计数器): 在循环指令和重复前缀中,作循环次数计数器
DX -------- 通用寄存器之一(数据寄存器,存放数据):在字乘法和除法指令中,作辅助累加器(即存放乘积或被除数的高16位)
在输入输出指令中存放16位的端口地址
SP ----------- 指针寄存器之一(栈指针):指向当前的栈
BP ----------- 指针寄存器之一(基指针):用来保存使用局部变量的地址
IP ----------- 指针寄存器之一(指令指针):指示当前运行程序的当前指针
CS ----------- 段寄存器之一(代码段):存放代码(在内存中物理地址)
------ CS:IP基地址:偏移地址【处理下一条要执行的代码】==cs相当于c语言中的代码块,ip块中的 哪一条语句
SS ----------- 段寄存器之一(堆栈段):作为栈使用
-----------ss相当于堆栈段的首地址(地址中的数据相当于c语言中的局部变量) sp相当于堆栈段的偏移地址
DS ----------- 段寄存器之一(数据段):存放数据
---------ds地址对应的数据 相当于c语言中的全局变量
ES ----------- 段寄存器之一(扩展段):
SI --------变址寄存器之一(源变址):存放源操作数的偏移地址
【SI的内容有自动修改的功能,在串指令中有自加,自 减的功能】
DI --------变址寄存器之一(目的变址):存放目的操作数的偏移地址 【DI的内容有自动修改的功能】,与ds联用,来确定 某个储存单元的地址
PSW: --------程序状态字寄存器(也称标志寄存器):
------1.存放当前指令执行结果的各种状态信息,如有无进位(CY位)有无溢出(OV位),结果正负 (SF位),结果是否为零(ZF 位),奇 偶标志位(P位)等;
----2. 存放控制信息,如允许中断(IF位),跟踪标志(TF位)等.
数据传输指令,算术运算指令 ,逻辑运算指令,串指令,程序转移指令
//转载自:https://blog.csdn.net/bjbz_cxy/article/details/79467688
数据传输指令
1. 通用数据传送指令.
MOV 传送字或字节.
PUSH 把字压入堆栈.
POP 把字弹出堆栈.
3. 目的地址传送指令.
LEA 装入有效地址.例: LEA DX,string ;把偏移地址存到DX.
4. 标志传送指令.
LAHF 标志寄存器传送,把标志装入AH.
算术运算指令
ADD 加法.
INC 加 1.
SUB 减法.
DEC 减 1.
逻辑运算指令
AND 与运算
. OR 或运算
. XOR 异或运算
. NOT 取反.
串指令
LODS 装入串.把源串中的元素(字或字节)逐一装入AL或AX中.( LODSB 传送字符. LODSW 传送字. LODSD 传送双字.
CX 重复次数计数器.
MOVS 串传送.( MOVSB 传送字符. MOVSW 传送字. MOVSD 传送双字. )
CMPS 串比较.( CMPSB 比较字符. CMPSW 比较字. )
程序转移指令
无条件转移指令 (长转移) JMP
无条件转移指令 CALL
过程调用 RET/RETF 过程返回.
循环控制指令(短转移) LOOP CX不为零时循环.
中断指令 INT 中断指令 INTO 溢出中断 IRET 中断返回
实例:
pushb是将一个byte压栈,而pushw就是将一个word压栈,同样pushl就是压栈long(也就是双字)。