2024年4月27日发(作者:)
一、数据传输指令
它们在存贮器和寄存器、寄存器和输入输出端口之间传送数据.
1.通用数据传送指令.MOV传送字或字节.
把字压入堆栈.
POP把字弹出堆栈.
PUSHA把AX,CX,DX,BX,SP,BP,SI,DI依次压入堆栈.
POPA把DI,SI,BP,SP,BX,DX,CX,AX依次弹出堆栈.
PUSHAD把EAX,ECX,EDX,EBX,ESP,EBP,ESI,EDI依次压入堆栈.
POPAD把EDI,ESI,EBP,ESP,EBX,EDX,ECX,EAX依次弹出堆栈.
BSWAP交换32位寄存器里字节的顺序XCHG交换字或字节.(至少有一个操作数为寄存器,
段寄存器不可作为操作数)CMPXCHG比较并交换操作数.(第二个操作数必须为累加器
AL/AX/EAX)XADD先交换再累加.(结果在第一个操作数里)XLAT字节查表转换.——BX指
向一张256字节的表的起点,AL为表的索引值(0-255,即0-FFH);返回AL为查表结
果.([BX+AL]->AL)2.输入输出端口传送指令.INI/O端口输入.(语法:IN累加器,{端口号
│DX})OUTI/O端口输出.(语法:OUT{端口号│DX},累加器)输入输出端口由立即方式指定时,
其范围是0-255;由寄存器DX指定时,其范围是0-65535.3.目的地址传送指令.LEA装入有效
地址.例:LEADX,string;把偏移地址存到传送目标指针,把指针内容装入DS.
例:LDSSI,string;把段地址:偏移地址存到DS:传送目标指针,把指针内容装入ES.
例:LESDI,string;把段地址:偏移地址存到ES:传送目标指针,把指针内容装入FS.
例:LFSDI,string;把段地址:偏移地址存到FS:传送目标指针,把指针内容装入GS.
例:LGSDI,string;把段地址:偏移地址存到GS:传送目标指针,把指针内容装入SS.
例:LSSDI,string;把段地址:偏移地址存到SS:DI.4.标志传送指令.LAHF标志寄存器传送,把标
志装入标志寄存器传送,把AH内容装入标志寄存器.PUSHF标志入栈.POPF标志
出栈.PUSHD32位标志入栈.POPD32位标志出栈.
算术运算指令
ADD加法
ADC带进位加法.
INC加1.
AAA加法的ASCII码调整.
DAA加法的十进制调整.
SUB减法.
SBB带借位减法.
DEC减1
AAS减法的ASCII码调整
DAS减法的十进制调整
SUB减法....MUL无符号乘法.IMUL整数乘法.以上两条,结果回送AH和AL(字节运算),或
DX和AX(字运算),AAM乘法的ASCII码调整.DIV无符号除法.IDIV整数除法.以上两条,结
果回送:
商回送AL,余数回送AH,(字节运算);或商回送AX,余数回送DX,(字运算).AAD除法的ASCII
码调整.CBW字节转换为字.(把AL中字节的符号扩展到AH中去)CWD字转换为双字.(把
AX中的字的符号扩展到DX中去)CWDE字转换为双字.(把AX中的字符号扩展到EAX中
去)CDQ双字扩展.(把EAX中的字的符号扩展到EDX中去)
逻辑运算指令
AND与运算.OR或运算.XOR异或运算.NOT取反.TEST测试.(两操作数作与运算,仅修
改标志位,不回送结果).SHL逻辑左移.SAL算术左移.(=SHL)SHR逻辑右移.SAR算术右
移.(=SHR)ROL循环左移.ROR循环右移.RCL通过进位的循环左移.RCR通过进位的循环右
移.以上八种移位指令,其移位次数可达255次.移位一次时,可直接用操作码.如SHLAX,1.移
位>1次时,则由寄存器CL给出移位次数.如MOVCL,04SHLAX,CL
串指令
DS:SI源串段寄存器:源串变址.ES:DI目标串段寄存器:目标串变址.CX重复次数计数
器.AL/AX扫描值.D标志0表示重复操作中SI和DI应自动增量;1表示应自动减量.Z标志用
来控制扫描或比较操作的结束.MOVS串传送.(MOVSB传送字符.MOVSW传送字.MOVSD
传送双字.)CMPS串比较.(CMPSB比较字符.CMPSW比较字.)SCAS串扫描.把AL或AX的
内容与目标串作比较,比较结果反映在标志位.LODS装入串.把源串中的元素(字或字节)逐一
装入AL或AX中.(LODSB传送字符.LODSW传送字.LODSD传送双字.)STOS保存串.是
LODS的逆过程.REP当CX/ECX<>0时重复.REPE/REPZ当ZF=1或比较结果相等,且
CX/ECX<>0时重复.REPNE/REPNZ当ZF=0或比较结果不相等,且CX/ECX<>0时重复.REPC
当CF=1且CX/ECX<>0时重复.REPNC当CF=0且CX/ECX<>0时重复.
五、程序转移指令
1>无条件转移指令(长转移)JMP无条件转移指令CALL过程调用RET/RETF过程返回.
2.单个标志位判断的条件转移指令
指令助记符 测试标记
JC
JNC
JZ/JE
JNZ/JNE
JS
JNS
JP/JPE
JNP/JPO
JO
JNO
转移条件
1
0
1
0
1
0
1
0
1
0
说明
有进借为则转移
无进借为则转移
为零或相等则转移
不为零或不相等则转移
为负数则转移
为正数则转移
有偶数个“1”则转移
有奇数个“1”则转移
有溢出则转移
无溢出则转移
CF
ZF
SF
PF
OF
CX寄存器为零则转移
JCXZ
CX
0
3>循环控制指令(短转移)LOOPCX不为零时循环.LOOPE/LOOPZCX不为零且标志Z=1时循
环.LOOPNE/LOOPNZCX不为零且标志Z=0时循环.JCXZCX为零时转移.JECXZECX为零时
转移.4>中断指令INT中断指令INTO溢出中断IRET中断返回5>处理器控制指令HLT处理
器暂停,直到出现中断或复位信号才继续.WAIT当芯片引线TEST为高电平时使CPU进入等
待状态.ESC转换到外处理器.LOCK封锁总线.NOP空操作.STC置进位标志位.CLC清进位标
志位.CMC进位标志取反.STD置方向标志位.CLD清方向标志位.STI置中断允许位.CLI清中
断允许位.
伪指令
DW定义字(2字节).PROC定义过程.ENDP过程结束.SEGMENT定义段.ASSUME建立
段寄存器寻址.ENDS段结束.END程序结束.
发布者:admin,转转请注明出处:http://www.yc00.com/web/1714181725a2397423.html
评论列表(0条)