欢迎来到天天文库
浏览记录
ID:57708797
大小:263.43 KB
页数:10页
时间:2020-09-01
《汇编语言指令2.doc》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、1.逻辑运算指令SHLoprd,1 CLSALoprd,1 CLSHRoprd,1 CLSARoprd,1 CL0CF0CFCF0CF执行操作指令格式2.移位指令移位规则▲左移:高位←低位右移:高位→低位▲移出位进入CF标志▲对移位指令,移出CF标志后丢失▲逻辑左移、算术左移的结果相同▲逻辑右移,新移入的信息以0填入算术右移,保持最高有效位原来的值(符号为不变)3.循环移位指令ROLCFCFRORCFCFRCLRCR指令格式执行操作CFCFCFCFROLoprd,1 CLRORoprd,1 CLRCLoprd,1 CLRCRoprd,1 CL移位规则▲左移:高位←低位右移:高位→
2、低位▲移出位进入CF标志▲对循环移位指令,改变各位的位置,信息不丢失▲带进位循环移位,CF标志参加循环移位注意事项:SHLAL,1SHRAL,CLROLBX,1RCRAL,CL源操作数为移位的次数目的操作数类型决定操作类型对标志位的影响▲移位指令:①据结果设置CF、SF、ZF、PF,对AF无定义②OF只在移位次数为1时有效,其他无定义移位后,最高有效位发生变化,则OF=1,否则为0▲对循环移位指令:①据移位结果设置CF,对其他标志无影响②OF标志与移位指令同控制转移指令1)无条件转移指令JMP格式 JMP目标地址 执行操作 无条件转移到目标地址处2)条件转移指令格式 Jcc符
3、号地址测试条件的助记符执行当转移条件满足,转向目标地址去执行。当 、、 不满足,执行Jcc后的下一条指令。转移方式只允许段内直接短方式,跳转范围在-128~127按转移条件不同,条件转移指令可以分为四大类:①以单个状态标志作为转移条件②以CX的值为0作为转移条件③以两个无符号数比较的结果作为转移条件④以两个带符号数比较的结果作为转移条件3)循环指令格式 LOOPxx 符号地址执行①(CX)←(CX)-1此操作不影响标志②检查转移条件,满足,转向目标地址去执行; 不满足,执行LOOPxx后一条指令转移方式只允许段内直接短方式,跳转范围-128~127循环指令说明:LOOP退出循
4、环条件是(CX)=0LOOPZ和LOOPNZ提供了提前结束循环的可能,不一定要等到(CX)=0才退出循环。4)调用和返回指令调用指令CALL①段内直接调用格式CALL符号地址;NEAR属性;转至符号地址处取指令入栈保存返回地址偏值执行(SP)←(SP)-2(SS:SP)←(IP)(IP)←符号地址的偏址②段间直接调用格式CALL符号地址;FAR属性执行入栈保存返回地址段值入栈保存返回地址偏值转至符号地址(SP)←(SP)-2(SS:SP)←(CS)(SP)←(SP)-2(SS:SP)←(IP)(IP)←符号地址的偏址(CS)←符号地址的段址返回指令RET①段内返回格式RET从堆栈
5、取返回地址偏值执行(IP)←(SS:SP)(SP)←(SP)+2②段间返回格式RET或RETF从堆栈取返回地址偏值从堆栈取返回地址段值执行(IP)←(SS:SP)(SP)←(SP)+2(CS)←(SS:SP)(SP)←(SP)+2注意:在调用、返回指令中,利用堆栈保存、恢复返回地址。对堆栈的操作应有目的性,不乱用堆栈操作,不随意修改堆栈内容,否则易造成死机。5)中断调用、中断返回指令中断子程以类型号N来区分共有256个类型号(0~FFH,即0~255)类型号0处理除0错误的中断子程类型号4H处理溢出时的中断子程类型号9H处理键盘操作的中断子程类型号21H与DOS系统功能相关的中断
6、子程中断调用指令INT格式INTN;其中N=0~FFH即0~255入栈保存PSW执行(SP)←(SP)-2保 存 现 场(SS:SP)←(PSW)IF←0清IF标志TF←0清TF标志入栈保存CS(SP)←(SP)-2(SS:SP)←(CS)入栈保存IP(SP)←(SP)-2(SS:SP)←(IP)取中断子程入口地址(IP)←(0:N×4)(CS)←(0:N×4+2)中断返回指令IRET格式IRET执行从堆栈取返回地址, 并恢复现场(IP)←(SS:SP)(SP)←(SP)+2(CS)←(SS:SP)(SP)←(SP)+2(PSW)←(SS:SP)(SP)←(SP)+2溢出中断调用
7、INTO格式INTO执行OF为1时,执行INT4;OF为0时,执行INTO下一条执行。
此文档下载收益归作者所有