微机原理与接口技术——第三章 汇编语言指令的一般格式: 指令助记符 操作数列表;注释 寻址方式: 立即数寻址 :mov BL,12H ; mov AX,1020H 寄存器寻址 : INC CL mov DS,AX 存储器 a.直接寻址 mov AX,[2000H] b.寄存器间接寻址 EA = [寄存器] c.寄存器相对寻址 EA = [基址寄存器或变址寄存器]+位移量:mov AX,[SI+24]或写成 mov AX,24 [SI] 基址加变址寻址:EA = [基址寄存器]+[变址寄存器] 例:mov AX,[BX+SI] 带位移的基址加变址寻址: EA = [基址寄存器]+[变址寄存器]+位移量 例:mov AX,[BX+SI+SOME] 比例变址寻址: EA = [变址寄存器] x 比例因子+位移量 : mov EAX,ARRAY[ESI x 4] 基址加比例变址寻址:EA = [基址寄存器]+[变址寄存器]x比例因子 :mov EDX,[EAX x 2][EBX] 带位移的基址加比例寻址:EA = [基址寄存器]+[变址寄存器]x比例因子+位移量 指令系统: 约定:为了清楚表达每条指令所能配合使用的操作数,约定以下符号: r8——任意一个8位通用寄存器AH/AL/BH/BL/CH/CL/DH/DL r16——任意一个16通用寄存器AX/BX/CX/DX/SI/DI/BP/SP reg——代表r8或r16 seg——段寄存器CS/DS/ES/SS m8——一个8位存储器操作数单(包括所有主存寻址方式) m16——一个16位存储器操作数单(包括所有主存寻址方式) mem——代表m8或m16 i8——一个8位立即数 i16——一个16位立即数 imm——代表i8或i16 dest——目的操作数 src——源操作数 8086的指令系统可分成6个功能组,他们是①数据传送类指令②算术运算类指令③位操作类指令④串操作类指令⑤控制转移类指令⑥处理机控制类指令 一、数据传送类指令 数据传送类指令又分为: 1、通用数据传送指令三条 传送指令:MOV dest,src ;dest←src 交换指令:XCHG reg,reg/mem ;reg←reg/mem,也可表达为:XCHG reg/mem.reg 换码指令:XLAT label 或 XLAT ;al←ds:[bx+al] 2、堆栈操作指令 进栈指令:PUSH reg/mem/seg ;SP←sp-2,SS:[Sp]←reg/mem/seg 出栈指令:POP reg/mem/seg ;reg/seg/mem←SS:[SP],Sp←SP+2 3、标志寄存器传送指令 标志送AH指令:LAHF ;AH←FLAGS的低字节 AH送标志指令:SAHF ;FLAGS的低字节←AH 标志进栈指令:PUSHF ;SP←SP-2,SS:[SP]←FLAGS 标志出栈指令:POPF ;FLAGS←SS:[SP],SP←SP+2 4、地址传送指令 有效地址传送指令:LEA r16,mem ;r16←mem的有效地址EA 指针传送指令 :LDS r16,mem ;r16←mem,DS←mem+2 指针传送指令 :LES r16,mem ;r16←mem,ES←mem+2 5、输入输出指令 输入指令:IN 输出指令:OUT 二、算术运算类指令 1、加法指令 加法指令:ADD 带进位加法指令:ADC 增量指令:INC 2、减法指令 减法指令:SUB 带借位减法指令:SBB 减量指令:DEC 求补指令:NEG 比较指令:CMP 3、乘法指令 无符号数乘法指令:MUL 有符号数乘法指令:IMUL 4、除法指令 无符号数除法指令:DIV 有符号数除法指令:IDIV 5、符号扩展指令 字节转换为字指令:CBW 字转换为双字指令:CWD 6、十进制调整指令 (1)压缩BCD码调整指令 加法的十进制数调整指令:DAA 减法的十进制数调整指令:DAS (2)非压缩BCD码调整指令 加法的非压缩BCD码调整指令:AAA 减法的非压缩BCD码调整指令:AAS 乘法的非压缩BCD码调整指令:AAM 除法的非压缩BCD码调整指令:AAD 三、位操作类指令 1、逻辑运算指令 逻辑与指令:AND 逻辑或指令:OR 逻辑异或指令:XOR 逻辑非指令:NOT 测试指令:TEST 2、移位指令 (1)逻辑移位指令 逻辑左移:SHL 逻辑右移:SHR (2)算术移位指令 算术左移:SAL 算术右依:SAR 3、循环移位指令 (1)不带进位循环移位指令 不带进位循环左移:ROL 不带进位循环右移:ROR (2)带进位循环移位指令 带进位循环左移:RCL 带进位循环右移:RCR 四、串操作指令 1、串传送指令 字节串传送指令:MOVSB 字串传送指令 :MOVSW 2、串存储指令 字节串存储指令:STOSB 字串存储指令 :STOSW 3、串读取指令 字节串读取指令:LODSB 字串读取指令 :LODSW 4、串比较指令 字节串比较指令:CMPSB 字串比较指令 :CMPSW 5、串扫描指令 字节串扫描指令:SCASB 字串扫描指令 :SCASW 6、重复前缀指令 REP REPZ REPNZ 五、控制转移类指令 1、无条件转移指令 JMP 2、条件转移指令 JZ/JE、JNZ/JNE、JS、JNS、JP/JPE、JNP/JPO、JO、JNO、JC/JB/JNAE、JNC/JNB/JAE、JBE/JNA、 JNBE/JA、JL/JNGE、JNL/JGE、JLE/JNG、JNLE/JG 3、循环指令 LOOP LOOPZ/LOOPE LOOPNZ/LOOPNE 4、子程序指令 子程序调用指令 CALL 子程序返回指令 RET 5、中断指令 INT i8 IRET INTO 6、系统功能调用 六、处理机控制类指令 1、标志位操作指令 (1)进位标志操作指令 CLC STC CMC (2)方向标志操作指令 CLD STD (3)中断标志操作指令 CLI STI 2、CPU状态控制指令 控操作指令:NOP 段超越前缀指令:SEG: 封锁前缀指令:LOCK 暂停指令:HLT 交权指令:ESC 等待指令:WAIT
2024最新激活全家桶教程,稳定运行到2099年,请移步至置顶文章:https://sigusoft.com/99576.html
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。 文章由激活谷谷主-小谷整理,转载请注明出处:https://sigusoft.com/22726.html