《指令系统特点》由会员分享,可在线阅读,更多相关《指令系统特点(84页珍藏版)》请在金锄头文库上搜索。
1、1Shanghai Jiao Tong University8086 指令系统特点指令系统特点 可变长可变长指令:指令格式比较复杂。指令:指令格式比较复杂。寻址方式寻址方式寻址方式寻址方式多样灵活,处理数据能力比较强多样灵活,处理数据能力比较强 ( (字节字节/ /字、有符号字、有符号/ /无无符号二进制数据、压缩型符号二进制数据、压缩型/ /非压缩型十进制数据非压缩型十进制数据) )。有重复指令、乘除运算指令。扩充了条件转移、移位有重复指令、乘除运算指令。扩充了条件转移、移位/ /循环指令。循环指令。增设了增设了增设了增设了加强软件中断功能和支持多处理器系统的相关指令。加强软件中断功能和支持
2、多处理器系统的相关指令。颊绒隆孤盘肖伎壮壁赏址猫藏身缆撒贺郎饺宽魂扬揭也谦卿磐恭惨求救粘指令系统特点指令系统特点2Shanghai Jiao Tong University8086 指令格式指令格式 指令由两部分构成:指令由两部分构成:指令由两部分构成:指令由两部分构成:操作码操作码操作码操作码(OP-Code)(OP-Code)字段:字段:字段:字段:计算机所要执行的操作类型,由一组计算机所要执行的操作类型,由一组二进制代码表示。在汇编语言中用二进制代码表示。在汇编语言中用助记符助记符代表。代表。操作数操作数操作数操作数(Oprand)(Oprand)字段:字段:字段:字段:指令执行的操作所
3、需的操作数,可是操作指令执行的操作所需的操作数,可是操作数本身,或操作数地址,或操作数地址计算方法。数本身,或操作数地址,或操作数地址计算方法。操作码操作码操作数或操作数地址操作数或操作数地址炯借死县烦察垒媒墅查驹顺涪渔梧掖风俊迢躺涸威芹契魔缘住卷犬胚楼研指令系统特点指令系统特点3Shanghai Jiao Tong University无操作数:无操作数:无操作数:无操作数:控制类指令控制类指令单操作数:单操作数:单操作数:单操作数:只给出一个操作数地址,该操作数可在寄存器或只给出一个操作数地址,该操作数可在寄存器或存储器中,或指令中直接给出立即数。存储器中,或指令中直接给出立即数。双操作数
4、:双操作数:双操作数:双操作数:源操作数源操作数(source)(source),目的操作数,目的操作数(destination)(destination)一个操作数在寄存器中,另一个在寄存器或存储器中,一个操作数在寄存器中,另一个在寄存器或存储器中,或指令中直接给出立即数。或指令中直接给出立即数。不允许两个都在存储器中不允许两个都在存储器中。8086 指令格式指令格式 尤控屈逼起炸劣塞鱼昌盛傈先谦岁痛赃黔共允契裔灾喷内唆饥跪吧邪诀剃指令系统特点指令系统特点4Shanghai Jiao Tong University可变长指令,指令长度为可变长指令,指令长度为1 16 6个个字节。字节。其中其
5、中B1B1和和B2B2为为基本字节基本字节,B3B6B3B6根据不同指令作相应的安排。根据不同指令作相应的安排。7 2107 65 4 3 2 1 0OPD W MOD REG R/MLOW DISP或 DATAHIGH DISP或 DATALOW DATAHIGH DATAB1B2B3B4B5B6操作码从/到寄存器字/字节寻址方式寄存器寄存器/存储器8086 指令格式指令格式 姻襄栽亿轨恫肋斡退菇昔娟纠绢研麦演灼铜氦裹缅互势违钓份利拧控筏襄指令系统特点指令系统特点5Shanghai Jiao Tong University寻址方式寻址方式 1.1.固定寻址固定寻址固定寻址固定寻址2.2.立即
6、数寻址立即数寻址立即数寻址立即数寻址3.3.寄存器寻址寄存器寻址寄存器寻址寄存器寻址4.4.存储器寻址存储器寻址存储器寻址存储器寻址基址寻址基址寻址基址寻址基址寻址变址寻址变址寻址变址寻址变址寻址变址加变址寻址变址加变址寻址变址加变址寻址变址加变址寻址5. 5. 其它寻址方式其它寻址方式其它寻址方式其它寻址方式直接寻址直接寻址直接寻址直接寻址间接寻址间接寻址间接寻址间接寻址串操作指令寻址串操作指令寻址串操作指令寻址串操作指令寻址I/OI/O端口寻址端口寻址端口寻址端口寻址转移类指令寻址转移类指令寻址转移类指令寻址转移类指令寻址虫惰滞豌宪篱点驳羽迁瞅遇零挫胯草珐潜黎膝育翅翘叹咀阂杰硕腋礁诀饯指令
7、系统特点指令系统特点6Shanghai Jiao Tong University1. 1. 固定寻址固定寻址固定寻址固定寻址 有些单字节指令,规定有些单字节指令,规定CPUCPU对某个对某个固定的寄存器固定的寄存器进行。进行。 如:如:如:如:加法的加法的ASCIIASCII调整指令调整指令AAAAAA,规定被调整的数总位于,规定被调整的数总位于ALAL中。中。该指令用来调整该指令用来调整ALAL中的结果,指令编码为:中的结果,指令编码为:0 0 1 1 0 1 1 10 0 1 1 0 1 1 1OPOP37H 37H 寻址方式寻址方式 金绒何辱观捻嗅荣慢贯屋副恐空骏壮痰淑磅嗓掳置谜左砒柑询
8、吴墒衡偿砍指令系统特点指令系统特点7Shanghai Jiao Tong University2. 2. 立即数寻址立即数寻址立即数寻址立即数寻址 操作数就在指令中操作数就在指令中,当执行指令时,当执行指令时,CPUCPU直接从指令队列中直接从指令队列中取得立即数,取得立即数,而而不必执行总线周期。不必执行总线周期。 l l立即数可以是立即数可以是8 8位,或位,或1616位;位;l l只能是只能是整数类型整数类型的源操作数;的源操作数;l l主要用来给寄存器赋初值;主要用来给寄存器赋初值;l l指令执行速度快。指令执行速度快。如:如:如:如:加法指令加法指令 MOV AX, 1680H MO
9、V AX, 1680H表示将表示将1680H1680H送送AXAX,AHAH中为中为16H16H,ALAL中为中为80H80H;即高地址对应高字节,低地址对应低字节。即高地址对应高字节,低地址对应低字节。寻址方式寻址方式 山迟瘪戎静肛署祟铺笆岩空蔓凑声丈祥筒缕俞捷窜瞻标问篡兵将杂郸亭涨指令系统特点指令系统特点8Shanghai Jiao Tong University3. 3. 寄存器寻址寄存器寻址寄存器寻址寄存器寻址操作数在操作数在CPUCPU的寄存器中,的寄存器中,指令中给出指令中给出寄存器名寄存器名。 源操作数和目的操作数源操作数和目的操作数均可均可采用寄存器寻址方式。采用寄存器寻址方式
10、。l l寻址的指令长度短;寻址的指令长度短;l l操作数就在操作数就在CPUCPU内部进行,内部进行,不需要不需要使用总线周期;使用总线周期;l l指令执行速度快。指令执行速度快。如:如:如:如:加加1 1指令指令 INC reg INC reg表示将寄存器内容加表示将寄存器内容加1 1,指令编码:,指令编码:OPREG0 0 1 0 0 0rrr23 7 寻址方式寻址方式 龟絮聪颈评创梨冉绽铣锌狂鳞壶猴占题刊经屎铲测挟吮燥雌规趋窥挛甘枣指令系统特点指令系统特点9Shanghai Jiao Tong University4. 4. 存储器寻址存储器寻址存储器寻址存储器寻址寻找存储器操作数,寻找
11、存储器操作数,必须必须经总线控制经总线控制逻辑电路进行存取。逻辑电路进行存取。当当EUEU单元需要读单元需要读/ /写位于存储器的操作数时:写位于存储器的操作数时:根据根据寻址方式寻址方式( (指令中指令中B2B2字节字节) ),由,由EUEU计算计算计算计算出操作数地址的偏移量,出操作数地址的偏移量,即有效地址即有效地址EAEA;将将EAEA送至送至送至送至BIUBIU单元,同时请求单元,同时请求BIUBIU执行一个总线周期;执行一个总线周期;BIUBIU将某个段寄存器的内容左移将某个段寄存器的内容左移4 4位,加上位,加上EUEU送来的送来的EAEA,形成,形成2020位位的实际地址,即的
12、实际地址,即物理地址物理地址物理地址物理地址PAPA ;执行总线周期执行总线周期执行总线周期执行总线周期,读,读/ /写指令所需的操作数。写指令所需的操作数。EAEA基址值基址值基址值基址值 变址值变址值变址值变址值 位移量位移量位移量位移量D DBXBXBPBPSISIDIDI0 08 81616寻址方式寻址方式 宽匿教枕室呆衡被诈叭逃阐赐吻什避熬肌牲烟跃豌茹赦圆飘料瘪斡润艘锻指令系统特点指令系统特点10Shanghai Jiao Tong University4. 4. 存储器寻址存储器寻址存储器寻址存储器寻址:直接寻址直接寻址直接寻址直接寻址l l最简单、直观。最简单、直观。l l指令中
13、直接以指令中直接以位移量位移量形式,给出操作数的有效地址形式,给出操作数的有效地址EAEA, 即即EAEADISPDISPl l执行速度快,主要用于存取位于存储器中的简单变量。执行速度快,主要用于存取位于存储器中的简单变量。如:如:如:如:MOV AX,MOV AX, 1680H 1680H表示将表示将1680H1680H和和1681H1681H两单元的取入两单元的取入AXAX中。中。寻址方式寻址方式 梦饮浚生涸钠狭狡学猛肾秆惶躬钧文豆弓厌减刨芋踪采返避编炎涣索显羌指令系统特点指令系统特点11Shanghai Jiao Tong University4. 4. 存储器寻址:存储器寻址:存储器寻
14、址:存储器寻址:间接寻址间接寻址间接寻址间接寻址l l指指寄存器寻址方式寄存器寻址方式,操作数,操作数一定一定在存储器中;在存储器中;l l存储单元的存储单元的EAEA由由寄存器寄存器指出:基址寄存器指出:基址寄存器BXBX,基址指针寄存器,基址指针寄存器BPBP,变址寄存器,变址寄存器SISI和和DIDI;l l书写时,寄存器带书写时,寄存器带方括号方括号方括号方括号;l l根据所采用的寄存器不同,分为根据所采用的寄存器不同,分为三种三种 : 基址寻址:基址寻址:BXBX或或BPBP位移量位移量变址寻址:变址寻址:SISI或或DIDI位移量位移量基址加变址:基址加变址:BXBX或或BPBPS
15、ISI或或DIDI位移量位移量寻址方式寻址方式 袭褂吹飘拓栅翱呸理辕袁轿赁严芭逮柏筹垦键术铀碗汽校狞缮窟戌刺晶德指令系统特点指令系统特点12Shanghai Jiao Tong University4. 4. 存储器寻址存储器寻址存储器寻址存储器寻址实例实例实例实例例:例:例:例:设设DS=1200HDS=1200H,BX=05A6HBX=05A6H,SS=5000HSS=5000H,BP=40A0HBP=40A0H,SI=2000HSI=2000H,DI=3000HDI=3000H,位移量,位移量DISP=1618HDISP=1618H。试判断试判断下列指令的寻址方式,并求出在各种寻址方式下
16、的下列指令的寻址方式,并求出在各种寻址方式下的EAEA和和PAPA,并说明指令执行的结果。,并说明指令执行的结果。MOV AXMOV AX,0618H 0618H 直接寻址直接寻址直接寻址直接寻址EA = DISP = 0618HEA = DISP = 0618H执行结果:执行结果:执行结果:执行结果:将数据段将数据段12618H12618H和和12619H12619H两单元的内容取出送两单元的内容取出送AXAX。PA = DSPA = DS左移左移4 4位位 + EA + EA =12000H+0618H=12618H =12000H+0618H=12618H寻址方式寻址方式 掸岔架突簇经文
17、熟跃耐凋遁谁凰册激汞蓑敷缺室屡盯铝醉咳陛补尤蛋胶溉指令系统特点指令系统特点13Shanghai Jiao Tong University5. 5. 其它寻址方式其它寻址方式其它寻址方式其它寻址方式uu 串操作指令寻址方式串操作指令寻址方式串操作指令寻址方式串操作指令寻址方式源源串操作数第串操作数第1 1个字节个字节/ /字有效地址存放在字有效地址存放在源源变址寄存器变址寄存器SISI中。中。目标目标串操作数第串操作数第1 1个字节个字节/ /字有效地址存放在字有效地址存放在目标目标变址寄存器变址寄存器DIDI中。中。重复重复串操作时,串操作时,自动修改自动修改SISI和和DIDI的内容,指向后
18、面的字节的内容,指向后面的字节/ /字。字。指令中指令中,不必给出,不必给出SISI或或DIDI的编码,故串操作指令是的编码,故串操作指令是隐含寻址方式隐含寻址方式。寻址方式寻址方式 鸣笔光呼鸣蘑刽蛙大她噎咀溉陛礼茸我蛛潍瞳诬免彰流疤鞠刊昧撬轨售螺指令系统特点指令系统特点14Shanghai Jiao Tong Universityuu I/O I/O端口寻址方式端口寻址方式端口寻址方式端口寻址方式直接端口寻址:直接端口寻址:直接端口寻址:直接端口寻址: 以以8 8位位立即数方式在指令中直接给出。立即数方式在指令中直接给出。 端口号范围端口号范围 0 0255255 例如:例如:IN ALIN
19、 AL,n n间接端口寻址:间接端口寻址:间接端口寻址:间接端口寻址: 通过通过DXDX间接寻址,间接寻址,1616位端口地址放在位端口地址放在DXDX中。中。 端口号范围端口号范围 0 06553565535 例如:例如:OUT DXOUT DX,ALAL寻址方式寻址方式 崎铅大协灿帆纬箭阻岭糜颊棵及劣他失搭愚废袭码霖逻樟涸糜牛拢淑栖艘指令系统特点指令系统特点15Shanghai Jiao Tong Universityuu 转移类指令的寻址方式转移类指令的寻址方式转移类指令的寻址方式转移类指令的寻址方式80868086系统中,存储器采用分段结构,转移类指令有系统中,存储器采用分段结构,转移
20、类指令有段内段内转移和转移和段段间间转移。转移。条件转移指令:条件转移指令:条件转移指令:条件转移指令:只允许实现段内转移,且只允许实现段内转移,且段内短转移段内短转移,即转移地址范围为,即转移地址范围为 -128 -128+127+127字节,由指令直接给出字节,由指令直接给出8 8位位地址偏移量。地址偏移量。无条件转移指令和调用指令:无条件转移指令和调用指令:无条件转移指令和调用指令:无条件转移指令和调用指令:段内短转移,段内直接转移,段内间接转移,段间直接转移,段段内短转移,段内直接转移,段内间接转移,段间直接转移,段间间接转移间间接转移寻址方式寻址方式 谨恒扎隐抵阜蔬娠转生毛焚壁妇银廉
21、讹劲翠抓敲卷崭琐衅兄紫刀剔式驼创指令系统特点指令系统特点16Shanghai Jiao Tong University指令的分类指令的分类 80868086指令系统中,包含指令系统中,包含133133条基本指令条基本指令,与寻址方式结合,与寻址方式结合,再加上不同的数据形式,可构成再加上不同的数据形式,可构成上千种指令上千种指令。 数据传送类数据传送类 算术运算类算术运算类 逻辑运算与移位类逻辑运算与移位类 串操作类串操作类 处理器控制类处理器控制类壕淤穗去汤匈离绵戍鲁减字橙骤蜕哑激瘩打食沽蹄淹耀账呐孝疵技幕序换指令系统特点指令系统特点17Shanghai Jiao Tong Universi
22、ty可完成可完成寄存器与寄存器寄存器与寄存器之间、之间、寄存器与存储器寄存器与存储器之间,之间,寄存器与寄存器与I/OI/O端口端口之间的字节或字传送。之间的字节或字传送。特点:特点:特点:特点:除除除除SAHFSAHF和和和和POPFPOPF外,外,外,外,不影响标志寄存器内容。不影响标志寄存器内容。uu通用数据传送(通用数据传送(5 5条)条)uu目标地址传送(目标地址传送(3 3条)条)uu标志位传送(标志位传送(4 4条)条)uuI/OI/O数据传送(数据传送(2 2条)条)共共1414条,分为条,分为4 4小类:小类:数据传送类数据传送类讯骡参蠢萨傲逞挫愚供寒芦末抉兹债六沾甸撬锅照某
23、助则阴蕾恒卫俘锤桨指令系统特点指令系统特点18Shanghai Jiao Tong University指令类型指令类型指令类型指令类型指令功能指令功能指令功能指令功能指令书写格式指令书写格式指令书写格式指令书写格式通用数据通用数据传送传送字节或字传送字节或字传送字压入堆栈字压入堆栈字弹出堆栈字弹出堆栈字节或字交换字节或字交换字节翻译字节翻译MOV d,sMOV d,sPUSH sPUSH sPOP dPOP dXCHG d,sXCHG d,sXLATXLAT目标地址目标地址传送传送装入有效地址装入有效地址装入装入DSDS寄存器寄存器装入装入ESES寄存器寄存器LEA d,sLEA d,sLD
24、S d,sLDS d,sLES d,sLES d,s标志位标志位传送传送将将FRFR低字节装入低字节装入AHAH寄存器寄存器将将AHAH内容装入内容装入FRFR低字节低字节将将FRFR内容压入堆栈内容压入堆栈从堆栈弹出从堆栈弹出FRFR内容内容LAHFLAHFSAHFSAHFPUSHFPUSHFPOPFPOPFI/OI/O数据数据传送传送输入字节或字输入字节或字输出字节或字输出字节或字IN IN 累加器累加器, ,端口端口OUT OUT 端口端口, ,累加器累加器数据传送类数据传送类们荒僳旗还蛀芳钨乞屑帐羌枣棚侥久鄙甘诽辆逾丛帛罚坯帖病渐小馒充瞒指令系统特点指令系统特点19Shanghai J
25、iao Tong University通用数据传送指令通用数据传送指令通用数据传送指令通用数据传送指令(5 5 5 5条)条)条)条)字节或字传送:字节或字传送:MOV MOV 目的,源目的,源字压入堆栈:字压入堆栈:PUSH PUSH 源源字弹出堆栈:字弹出堆栈:POP POP 目的目的字节或字交换:字节或字交换:XCHG XCHG 目的,源目的,源字节翻译:字节翻译:XLATXLAT通用数据传送通用数据传送迂澡晨廓料慷饯硅蒲忌嗜讥朝炔靶贡共侍喝沾泌旁全屉毋菊溃和厚树谭厨指令系统特点指令系统特点20Shanghai Jiao Tong UniversityMOV d, s MOV d, s
26、;将源操作数;将源操作数s s指定的内容送到目的指定的内容送到目的d d源操作数:源操作数:源操作数:源操作数:8/168/16位寄存器、存储器中的某个字节位寄存器、存储器中的某个字节/ /字,字, 或者或者8/168/16位立即数;位立即数;目标操作数:目标操作数:目标操作数:目标操作数:8/168/16位寄存器、存储器中的某个字节位寄存器、存储器中的某个字节/ /字,字, 不能为立即数;不能为立即数;通用数据传送通用数据传送娘茧撩殴戏仆蒲概咙产绞旅惕寞照兑甥递雌秀故桶考裁眉霍悸炸绝侧遗级指令系统特点指令系统特点21Shanghai Jiao Tong UniversityMOV MOV 指
27、令需指令需指令需指令需注意问题:注意问题:注意问题:注意问题:MOVMOV指令可传送指令可传送8 8位数据,也可传送位数据,也可传送1616位数据。位数据。MOV MOV 指令中的两操作数指令中的两操作数s s和和d d,必用必用1 1个寄存器,个寄存器,不允许不允许同为存储单元。同为存储单元。不能用不能用CSCS和和IPIP做目的操作数。做目的操作数。不允许不允许段寄存器之间直接数据传送。段寄存器之间直接数据传送。不允许不允许立即数做目的操作数。立即数做目的操作数。不能不能向段寄存器送立即数。向段寄存器送立即数。通用数据传送通用数据传送最迎砌虱碴依个强登宅扦宛朔岭勤烬情禽豁傀蜂眼枉鸟婉雁级蛆
28、单驴麦潘指令系统特点指令系统特点22Shanghai Jiao Tong UniversityPUSH s PUSH s ;将源操作数;将源操作数(16(16位位) )压入堆栈压入堆栈POP d POP d ;将堆栈中当前栈顶两相邻单元数据字弹出到;将堆栈中当前栈顶两相邻单元数据字弹出到d d特点:特点:特点:特点: s s和和d d可以是可以是1616位位寄存器或存储器两相邻单元;寄存器或存储器两相邻单元; 堆栈按堆栈按字字操作;操作; 每执行一条入栈指令,堆栈地址指针每执行一条入栈指令,堆栈地址指针SPSP减减2 2,入栈的数据位于,入栈的数据位于栈顶栈顶; 高位字节先入栈,放在较高地址单
29、元,低位字节后入栈,放在较低地高位字节先入栈,放在较高地址单元,低位字节后入栈,放在较低地址单元;址单元;“ “先进后出先进后出原则原则” ” 执行执行弹出弹出指令时,过程相反,栈顶指针的值加指令时,过程相反,栈顶指针的值加2 2; CSCS段寄存器值可以入栈,但不能反过来弹出一个字到段寄存器值可以入栈,但不能反过来弹出一个字到CSCS。通用数据传送通用数据传送旱庄块沫譬榨娱咙骂兰掂味詹放危墓馁荒翟馈阜捉炒切棱麦鸯献妈钩偏吭指令系统特点指令系统特点23Shanghai Jiao Tong UniversityOPOPREGREG01010 01101010 0117 70 010001000C
30、SCS00300030IPIP. . .5353. . .404023232003E2003E200002000010030100301000010000存储器存储器CSCS段首地址段首地址20002000SSSS00400040SPSP+1+1指令代码指令代码SSSS段首地址段首地址PUSH BXPUSH BX其中:其中:其中:其中:CS=1000H, IP=0030H, SS=2000H, SP=0040H, BX=2340HCS=1000H, IP=0030H, SS=2000H, SP=0040H, BX=2340H2340H2340Hx x x x1616161623402340BX
31、BX-2-2x x x x161616162003F2003F2004020040新栈顶新栈顶栈底(原栈顶)栈底(原栈顶)通用数据传送通用数据传送青呕搂仰狼臭耸典轻爪欺零袖阅嫉俩疑腿司绷艺虑迢樱刃若悼做鬼描邓浅指令系统特点指令系统特点24Shanghai Jiao Tong UniversityPOP CXPOP CX 其中:其中:其中:其中:CS=1000H, IP=0020H, SS=1600H, SP=004CHCS=1000H, IP=0020H, SS=1600H, SP=004CHOPOPREGREG01011 00101011 0017 70 010001000CSCS00200
32、020IPIP. . .5353. . .121234341604C1604C160001600010020100201000010000存储器存储器CSCS段首地址段首地址16001600SSSS004C004CSPSP+1+1指令代码指令代码SSSS段首地址段首地址1234H1234Hx x x x1616161634123412CXCX2 2x x x x161616161604D1604D1604E1604E原栈顶原栈顶新栈顶新栈顶通用数据传送通用数据传送座惫蹄被售服盯尊氧雾仍找灵夫押钙趾铃役荐驴寡逮械凶崭剃巧毙续疟僚指令系统特点指令系统特点25Shanghai Jiao Tong U
33、niversity目标地址传送指令目标地址传送指令目标地址传送指令目标地址传送指令(3 3 3 3条)条)条)条)装入有效地址:装入有效地址:LEA LEA 目的,源目的,源装入装入DSDS寄存器:寄存器:LDS LDS 目的,源目的,源装入装入ESES寄存器:寄存器:LES LES 目的,源目的,源目标地址传送目标地址传送漓濒枪贝起郊忌浪蛀惫晋坛塔寺信考羽晨主烧配笋粱蹿趁种挡碧筹坟沁坎指令系统特点指令系统特点26Shanghai Jiao Tong University 用于指定源操作数用于指定源操作数( (需是需是MM操作数操作数) )的的1616位偏移地址位偏移地址位偏移地址位偏移地址E
34、AEA,传,传送到一个指定的送到一个指定的1616位通用寄存器中。位通用寄存器中。 通常用来建立串操作指令所需的通常用来建立串操作指令所需的寄存器指针寄存器指针。目标地址传送目标地址传送LEA d, s LEA d, s ;取有效地址指令;取有效地址指令 楼牢建盲轿疼火吻应菏理垛雄弓庭煮枷琅臆孩御馆氯饭酬艘利屋愉虽衣蓟指令系统特点指令系统特点27Shanghai Jiao Tong University注意和注意和注意和注意和LEALEA和和和和MOVMOV指令区别指令区别指令区别指令区别。例如:例如:例如:例如:LEA AX, 0618H LEA AX, 0618H ;将内存单元的偏移量;将
35、内存单元的偏移量0618H0618H送送AXAX, ;指令执行后,;指令执行后,AXAX中的内容为中的内容为0618H0618HLEA SP, 3768H LEA SP, 3768H ;使堆栈指针;使堆栈指针SPSP为为3768H3768HLEA BX, BPLEA BX, BPDI DI ;将内存单元的偏移量;将内存单元的偏移量BP+DIBP+DI送送BXBX, ;指令执行后,;指令执行后,BXBX中内容为中内容为BP+DIBP+DI的值的值目标地址传送目标地址传送长掩孔氦读迢私秩谁兽缓负宝槐江疡笛陈绿昨备望盛喀洲租剔猪兄强哗挞指令系统特点指令系统特点28Shanghai Jiao Tong
36、 University标志位传送指令标志位传送指令标志位传送指令标志位传送指令(4 4 4 4条)条)条)条)将将FRFR低字节装入低字节装入AHAH寄存器:寄存器:LAHFLAHF将将AHAH内容装入内容装入FRFR低字节:低字节:SAHFSAHF将将FRFR内容压入堆栈:内容压入堆栈:PUSHFPUSHF从堆栈弹出从堆栈弹出FRFR内容:内容:POPFPOPF标志位传送标志位传送了解内容了解内容了解内容了解内容酿媳岗侄电桑殴娶硕膏氮低坪朋舆腮配另钩崖髓屈摈褐种扫樱仪探鳃博疚指令系统特点指令系统特点29Shanghai Jiao Tong University特点:特点:特点:特点: I/O
37、I/O指令只能用累加器作为执行指令只能用累加器作为执行I/OI/O数据传送的机构;数据传送的机构; 直接直接寻址寻址I/OI/O指令:寻址范围指令:寻址范围0 0255255; 间接间接寻址寻址I/OI/O指令:寻址范围指令:寻址范围0 06553565535; I/OI/O设备地址两种形式:固定端口和可变端口。设备地址两种形式:固定端口和可变端口。I/OI/O数据数据数据数据传送指令传送指令传送指令传送指令(2 2 2 2条)条)条)条)输入字节或字:输入字节或字:IN IN 累加器,端口累加器,端口输出字节或字:输出字节或字:OUT OUT 端口,累加器端口,累加器I/O数据传送数据传送滇
38、妙徐挝狂酌陌凛包站坝惭绚带囚毁廓蚜潦萎席耍蔽佑尹摘钉沦塞族孙孕指令系统特点指令系统特点30Shanghai Jiao Tong University端口号可由端口号可由8 8位立即数直接给出;位立即数直接给出;也可由也可由DXDX寄存器间接给出寄存器间接给出1616位端口号。位端口号。IN AL, PORT IN AL, PORT ;AL AL ( (端口端口PORT)PORT)IN AX, PORT IN AX, PORT ;AX AX ( (端口端口PORT)PORT)IN IN 累加器,端口号累加器,端口号累加器,端口号累加器,端口号 ;指定端口中内容输入到累加器;指定端口中内容输入到累
39、加器AL/AXAL/AXI/O数据传送数据传送破着姜刚戈尿窑妹底迟詹聊啥掏慢满罕萝南风文幽呢妥纶涩渭颇仲潍垮炊指令系统特点指令系统特点31Shanghai Jiao Tong University端口号可由端口号可由8 8位立即数直接给出;位立即数直接给出;也可用也可用DXDX寄存器间接给出寄存器间接给出1616位端口号。位端口号。OUT PORT,AL OUT PORT,AL ;端口;端口PORT PORT AL ALOUT PORT,AX OUT PORT,AX ;端口;端口PORT PORT AX AXOUT OUT 端口号,累加器端口号,累加器端口号,累加器端口号,累加器 ;累加器;累
40、加器AL/AXAL/AX中内容输出到指定端口中内容输出到指定端口I/O数据传送数据传送街揉邱逸靠颜鸡谣卯嘴娇符权术通茎贿铲拽鬃牺褪隆出弯煞凸誉枯残符越指令系统特点指令系统特点32Shanghai Jiao Tong University例如:例如:例如:例如:OUT DX, ALOUT DX, ALCS=4000HCS=4000H,IP=0020HIP=0020H,DX=6A10HDX=6A10H,ALAL66H66H。执行结果:执行结果:执行结果:执行结果:将累加器将累加器ALAL中的数据字节中的数据字节66H66H,输出到,输出到DXDX指定的端口指定的端口6A10H6A10H中。中。I/
41、O数据传送数据传送贞惠左睬蹬陈晴觅拌丁镰迹夕屏跋漓彩冕蜕皂识沉堆儡短萌婿翼鹿淫句哭指令系统特点指令系统特点33Shanghai Jiao Tong University算术运算类算术运算类 无符号无符号/ /有符号、有符号、8/168/16位二进制数运算:位二进制数运算:加减乘除加减乘除 无符号压缩型无符号压缩型/ /非压缩型十进制运算:非压缩型十进制运算:十进制调整十进制调整 根据运算结果影响状态标志,有时要利用某些标志才能得到根据运算结果影响状态标志,有时要利用某些标志才能得到正确的结果;正确的结果;使用时请留心有关状态标志使用时请留心有关状态标志。uu加法(加法(3 3条)条)uu减法(
42、减法(5 5条)条)uu乘法(乘法(2 2条)条)uu除法(除法(4 4条)条)uu十进制调整(十进制调整(6 6条)条)共共2020条,分为条,分为5 5小类:小类:只化喉抑依镜丙夜渗酚剥庄青竿躯馒咽眶垢玖趋铺栖闲镭簧篷墅滑曝瞧尊指令系统特点指令系统特点34Shanghai Jiao Tong University 加法加法 指令名称指令名称指令书写格式指令书写格式( (助记符助记符) )状态标志位状态标志位加法加法( (字字/ /字节字节) )带进位加法带进位加法( (字字/ /字字节节) )加加1(1(字字/ /字节字节) )ADD ADD d, sd, sADC ADC d, sd,
43、sINC INC d d O S Z A P CO S Z A P C 表示运算结果表示运算结果影响影响标志位标志位 表示运算结果表示运算结果不影响不影响标志位标志位硫紊晋翱冰则番磋妥卞诬拭奋母睛趴放夫锭烹岩嗣笺汀这囚秧隧放光灵贮指令系统特点指令系统特点35Shanghai Jiao Tong University ADD d, s ADD d, s ;dddds s 功能:功能:功能:功能:源操作数和目的操作数相加,结果送到目的操作数。源操作数和目的操作数相加,结果送到目的操作数。源操作数和目的操作数相加,结果送到目的操作数。源操作数和目的操作数相加,结果送到目的操作数。 源操作数:源操作数
44、:源操作数:源操作数:8/168/16位通用寄存器,存储器,立即数位通用寄存器,存储器,立即数 目的操作数:目的操作数:目的操作数:目的操作数:8/168/16位通用寄存器,存储器位通用寄存器,存储器 提示:提示:提示:提示: 目的操作数不能为立即数;目的操作数不能为立即数;目的操作数不能为立即数;目的操作数不能为立即数; 源操作数和目的操作数不能同时为存储器。源操作数和目的操作数不能同时为存储器。源操作数和目的操作数不能同时为存储器。源操作数和目的操作数不能同时为存储器。 加法加法 蕾遂辗沁补臃纸餐友歼萝妹堂赎蓄睛沏这谤层厨阎允音介婿陆年纯持祈训指令系统特点指令系统特点36Shanghai
45、Jiao Tong UniversityCFCF将重新根据结果置成新的状态。将重新根据结果置成新的状态。将重新根据结果置成新的状态。将重新根据结果置成新的状态。ADCADC指令一般用于指令一般用于指令一般用于指令一般用于1616位以上的多字节数字相加。位以上的多字节数字相加。位以上的多字节数字相加。位以上的多字节数字相加。 例如:例如:例如:例如: ADC AX,BX ADC AX,BX ;AX=AX+BX+CAX=AX+BX+C ADC BX,BP+2 ADC BX,BP+2 ;由;由BX+2BX+2寻址的堆栈段存储单元的字寻址的堆栈段存储单元的字 ;内容,加上;内容,加上BXBX和进位位,
46、结果存入和进位位,结果存入BXBX。ADC d, s ADC d, s ;dddds sCFCF功能:功能:功能:功能:源操作数和目的操作数相加外,再加上进位标志源操作数和目的操作数相加外,再加上进位标志源操作数和目的操作数相加外,再加上进位标志源操作数和目的操作数相加外,再加上进位标志CFCF,结果送到目的操作数。结果送到目的操作数。结果送到目的操作数。结果送到目的操作数。 加法加法 羽烁韭蛮沦埔削潞年楼八歉钒氢严祷驰帅乌劈剪买威妆翌碴娟甘荷泊午雏指令系统特点指令系统特点37Shanghai Jiao Tong UniversityINC dINC d ;dd+1dd+1功能:功能:功能:功
47、能:将将目的操作数当作无符号数,加目的操作数当作无符号数,加目的操作数当作无符号数,加目的操作数当作无符号数,加1 1后,结果送到目的操作后,结果送到目的操作后,结果送到目的操作后,结果送到目的操作数。数。数。数。目的操作数:目的操作数:目的操作数:目的操作数:8/168/16位通用寄存器,存储器;位通用寄存器,存储器;位通用寄存器,存储器;位通用寄存器,存储器; 但不允许为立即数。但不允许为立即数。但不允许为立即数。但不允许为立即数。间接寻址间接寻址的存储器单元加的存储器单元加的存储器单元加的存储器单元加1 1时,数据长度需用伪指令说明时,数据长度需用伪指令说明时,数据长度需用伪指令说明时,
48、数据长度需用伪指令说明; ;INCINC指令指令指令指令只影响只影响OFOF、SFSF、ZFZF、AFAF、PF5PF5个标志,不影响个标志,不影响个标志,不影响个标志,不影响CFCF。循环程序中,常用该指令对地址指针和循环计数值进行修改。循环程序中,常用该指令对地址指针和循环计数值进行修改。循环程序中,常用该指令对地址指针和循环计数值进行修改。循环程序中,常用该指令对地址指针和循环计数值进行修改。 加法加法 禄辣鼓孽和同颁某镀癣撩跃婪锌瓶钢舷捞祈障集聂博劣则甭乍抹精巍瞥进指令系统特点指令系统特点38Shanghai Jiao Tong University指令名称指令名称指令名称指令名称指令
49、书写格式指令书写格式指令书写格式指令书写格式( (助记符助记符助记符助记符) )状态标志位状态标志位状态标志位状态标志位减法减法( (字字/ /字节字节) )带进位减法带进位减法( (字字/ /字节字节) )减减1(1(字字/ /字节字节) )取负取负比较比较SUB SUB d, sd, sSBB SBB d, sd, sDEC DEC d dNEC NEC d dCMP CMP d, sd, s 1 1 O S Z A P CO S Z A P C 表示运算结果表示运算结果影响影响标志位标志位 表示运算结果表示运算结果不影响不影响标志位标志位 减法减法 喊叫沪嚷吕袒绚壕谢泪火慑掷此冰宅胸若硒
50、柜贯淤痉咕姨泛线扇刨披职佳指令系统特点指令系统特点39Shanghai Jiao Tong University SUB d, s SUB d, s ;dd - sdd - s 功能:功能:功能:功能:目的操作数减去源操作数,结果送到目的操作数。目的操作数减去源操作数,结果送到目的操作数。目的操作数减去源操作数,结果送到目的操作数。目的操作数减去源操作数,结果送到目的操作数。源操作数:源操作数:源操作数:源操作数:8/168/16位通用寄存器,存储器,立即数位通用寄存器,存储器,立即数 目的操作数:目的操作数:目的操作数:目的操作数:8/168/16位通用寄存器,存储器位通用寄存器,存储器 提
51、示:提示:提示:提示: 目的操作数不能为立即数;目的操作数不能为立即数;目的操作数不能为立即数;目的操作数不能为立即数; 源操作数和目的操作数不能同时为存储器。源操作数和目的操作数不能同时为存储器。源操作数和目的操作数不能同时为存储器。源操作数和目的操作数不能同时为存储器。 不允许进行段寄存器减法。不允许进行段寄存器减法。 减法减法 控霉滥朋痹邻证炬搓茸瓦疆殖景炕缨灸戈吸晕钥狗袱孪闺冶其襄豪嫉芭瞄指令系统特点指令系统特点40Shanghai Jiao Tong UniversitySBB d, sSBB d, s ; dd s - CFdd s - CF功能:功能:功能:功能:目的操作数减去源
52、操作数外,再减去进位标志位目的操作数减去源操作数外,再减去进位标志位目的操作数减去源操作数外,再减去进位标志位目的操作数减去源操作数外,再减去进位标志位 CF CF,结果送到目的操作数。,结果送到目的操作数。,结果送到目的操作数。,结果送到目的操作数。CFCF将重新根据结果置成新的状态。将重新根据结果置成新的状态。将重新根据结果置成新的状态。将重新根据结果置成新的状态。SBBSBB指令一般用于指令一般用于指令一般用于指令一般用于1616位以上位以上位以上位以上的多字节数字相减。的多字节数字相减。的多字节数字相减。的多字节数字相减。 例如:例如:例如:例如: SBB AX,BX SBB AX,B
53、X ;AX=AX-BX-CFAX=AX-BX-CF SBB WORD PTRDI,50A0H SBB WORD PTRDI,50A0H ;由;由DIDI寻址的数据段存储寻址的数据段存储 ;单元的内容,减去;单元的内容,减去50A0H50A0H ;及;及CFCF值。值。 减法减法 誓怪炎赚蝇嗜哩征万再冷霓韧纳梳乱烟丘硝蛇绣皇甭槐琅冒麦绝易置苍鲁指令系统特点指令系统特点41Shanghai Jiao Tong UniversityDEC dDEC d ;dd - 1dd - 1功能:功能:功能:功能:将将目的操作数减目的操作数减目的操作数减目的操作数减1 1后,结果送到目的操作数。后,结果送到目的
54、操作数。后,结果送到目的操作数。后,结果送到目的操作数。目的操作数:目的操作数:目的操作数:目的操作数:8/168/16位通用寄存器,存储器;位通用寄存器,存储器;位通用寄存器,存储器;位通用寄存器,存储器; 但不允许为立即数。但不允许为立即数。但不允许为立即数。但不允许为立即数。间接寻址间接寻址的存储器单元减的存储器单元减的存储器单元减的存储器单元减1 1时,数据长度需用时,数据长度需用时,数据长度需用时,数据长度需用TYPE PTRTYPE PTR类型伪指令来标识数据长度。类型伪指令来标识数据长度。类型伪指令来标识数据长度。类型伪指令来标识数据长度。DECDEC指令指令指令指令只影响只影响
55、OFOF、SFSF、ZFZF、AFAF、PF5PF5个标志,不影响个标志,不影响个标志,不影响个标志,不影响CFCF。循环程序中,常用该指令对地址指针和循环计数值进行修改。循环程序中,常用该指令对地址指针和循环计数值进行修改。循环程序中,常用该指令对地址指针和循环计数值进行修改。循环程序中,常用该指令对地址指针和循环计数值进行修改。 减法减法 石屈猫答父厢力确独盎讣柄崔值栈枪哗硝峡丝狠盏尺捻揍稿疟琢篡绎歹赠指令系统特点指令系统特点42Shanghai Jiao Tong UniversityCMP d, s CMP d, s ;d - s d - s 只置标志位只置标志位 功能:功能:功能:功
56、能:目的操作数减去源操作数,目的操作数减去源操作数,目的操作数减去源操作数,目的操作数减去源操作数,不送回不送回不送回不送回结果。结果。结果。结果。 只根据运算结果只根据运算结果只根据运算结果只根据运算结果置标志位置标志位置标志位置标志位。 源操作数:源操作数:源操作数:源操作数:8/168/16位通用寄存器,存储器,立即数位通用寄存器,存储器,立即数位通用寄存器,存储器,立即数位通用寄存器,存储器,立即数 目的操作数:目的操作数:目的操作数:目的操作数:8/168/16位通用寄存器,存储器位通用寄存器,存储器位通用寄存器,存储器位通用寄存器,存储器 提示:提示:提示:提示: 目的操作数不能为
57、立即数;目的操作数不能为立即数;目的操作数不能为立即数;目的操作数不能为立即数; 源操作数和目的操作数不能同时为存储器;源操作数和目的操作数不能同时为存储器;源操作数和目的操作数不能同时为存储器;源操作数和目的操作数不能同时为存储器; 不允许进行段寄存器比较。不允许进行段寄存器比较。不允许进行段寄存器比较。不允许进行段寄存器比较。 减法减法 恃览汇吗殊爸斤沂栋钩瞅瞳辞席吗改獭谱罕藕郝诧渡昂紊所输译霞贵跃宽指令系统特点指令系统特点43Shanghai Jiao Tong University例例例例 用比较指令判断两个数大小用比较指令判断两个数大小用比较指令判断两个数大小用比较指令判断两个数大小
58、。无符号数:根据借位标志无符号数:根据借位标志无符号数:根据借位标志无符号数:根据借位标志CFCF判断。判断。判断。判断。 ZF=1 ZF=1,d=sd=s; ZF=0 ZF=0,d d s s CF=0 CF=0,表示无借位,即,表示无借位,即,表示无借位,即,表示无借位,即d d s s; CF=1 CF=1,表示有借位,即,表示有借位,即,表示有借位,即,表示有借位,即dsds; 有符号数:根据溢出标志有符号数:根据溢出标志有符号数:根据溢出标志有符号数:根据溢出标志OFOF和符号标志和符号标志和符号标志和符号标志SFSF两者的两者的两者的两者的 异或运算结果来判断。异或运算结果来判断。
59、异或运算结果来判断。异或运算结果来判断。 OF OF SF=0SF=0时,则时,则时,则时,则d d s s; OF OF SF=1SF=1时,则时,则时,则时,则dsds;通常,通常,通常,通常,比较指令后面跟一条条件转移指令,检查标志位的状态决定程序的转向。比较指令后面跟一条条件转移指令,检查标志位的状态决定程序的转向。 减法减法 了解内容了解内容了解内容了解内容幂蚜汉俘甥珍萧粥恳浚逗獭甸宵辙均止狙青滋广尖萎尊秸媚彰蚀疹废么饼指令系统特点指令系统特点44Shanghai Jiao Tong University指令名称指令名称指令名称指令名称指令书写格式指令书写格式指令书写格式指令书写格式
60、( (助记符助记符助记符助记符) )状态标志位状态标志位状态标志位状态标志位不带符号乘法不带符号乘法( (字字/ /字节字节) )带符号整数乘法带符号整数乘法( (字字/ /字节字节) )MUL MUL s sIMUL IMUL s s O S Z A P CO S Z A P Cx x 表示标志位表示标志位为任意值为任意值 表示运算结果表示运算结果影响影响标志位标志位 乘法乘法 了解内容了解内容了解内容了解内容恰斡派炽鹏纤症埂硝赡二柏犬氰眯挨士撮克决藐谣浅忽遣套青匈氨张芽福指令系统特点指令系统特点45Shanghai Jiao Tong University指令名称指令名称指令名称指令名称指
61、令书写格式指令书写格式指令书写格式指令书写格式( (助记符助记符助记符助记符) )状态标志位状态标志位状态标志位状态标志位不带符号除法不带符号除法( (字字/ /字节字节) )带符号整数除法带符号整数除法( (字字/ /字节字节) )字节转换成字字节转换成字字转换成双字字转换成双字DIV sDIV sIDIV sIDIV sCBWCBWCWDCWDx x x x x x x x x x x x x x x x x xx x x x x x O S Z A P CO S Z A P Cx x 表示标志位为表示标志位为任意值任意值 表示运算结果表示运算结果不影响不影响标志位标志位 除法除法 了解内
62、容了解内容了解内容了解内容渔陷酝衫配优蝶扒俞督鲜慢南未柠舶祁娥磊撰婆彬仙陇堆寞恩故混等躺胸指令系统特点指令系统特点46Shanghai Jiao Tong University逻辑运算和移位循环类逻辑运算和移位循环类uu逻辑运算(逻辑运算(逻辑运算(逻辑运算(5 5条)条)条)条)uu移位(移位(移位(移位(4 4条)条)条)条)uu循环(循环(循环(循环(4 4条)条)条)条)共共共共1313条,分为条,分为条,分为条,分为3 3小类:小类:小类:小类:慑丫席盎衰纹镭辅卞薄瞒拜卿瀑弥垃鞘功钱耿牡陋娥扁去奎快典坛通乔鞋指令系统特点指令系统特点47Shanghai Jiao Tong Unive
63、rsity逻辑运算逻辑运算指令名称指令名称指令名称指令名称指令书写格式指令书写格式指令书写格式指令书写格式( (助记符助记符助记符助记符) )状态标志位状态标志位状态标志位状态标志位“ “与与”( ”(字节字节/ /字字) )“ “或或”( ”(字节字节/ /字字) )“ “异或异或”( ”(字节字节/ /字字) )“ “非非”( ”(字节字节/ /字字) )测试测试( (字节字节/ /字字) )AND d,sAND d,sOR d,sOR d,sXOR d,sXOR d,sNOT dNOT dTEST d,sTEST d,s0 0 x x 0 0 0 0 x x 0 00 0 x x 0 0
64、 0 0 x x x xO S Z A P Cx x 表示标志位为表示标志位为任意值任意值 表示运算结果表示运算结果不影响不影响标志位标志位1 1 表示标志位表示标志位置置1 1 表示运算结果表示运算结果影响影响标志位标志位绍悬井皿芒梅脉骆梭浊肥完夹狡腊联览掠唉剿菩媚俭红獭裤烂詹预蜀楔驴指令系统特点指令系统特点48Shanghai Jiao Tong UniversityAND d, sAND d, s ;dd dd s s 按位按位“ “与与” ”操作操作源操作数:源操作数:源操作数:源操作数:8/168/16位通用寄存器,存储器,立即数位通用寄存器,存储器,立即数位通用寄存器,存储器,立即
65、数位通用寄存器,存储器,立即数 目的操作数:目的操作数:目的操作数:目的操作数:8/168/16位通用寄存器,存储器位通用寄存器,存储器位通用寄存器,存储器位通用寄存器,存储器提示:提示:提示:提示: 目的操作数不能为立即数。目的操作数不能为立即数。 源操作数和目的操作数不能同时为存储器。源操作数和目的操作数不能同时为存储器。 影响影响SF,ZF,PFSF,ZF,PF;OF,CFOF,CF置置0 0;AFAF无意义。无意义。 二者均为二者均为1 1,结果为,结果为1 1;否则为;否则为0 0。 用来对一个数据的指定位清零。用来对一个数据的指定位清零。逻辑运算逻辑运算瞧循柳誊庞亦致蒙河饲武衰炕牲
66、客释卑霄铂倦昏扼墓乖贫裙困膨剃童绘恭指令系统特点指令系统特点49Shanghai Jiao Tong University例:例:例:例:对指定位清零。对指定位清零。对指定位清零。对指定位清零。 如将如将如将如将ALAL高高高高4 4位清零,位清零,位清零,位清零,(AL)=3AH(AL)=3AH。 ANDAND AL,0FH AL,0FH 结果:结果:结果:结果:(AL)=0AH(AL)=0AH 0011 10100011 10100000 11110000 1111ANDAND)0000 10100000 1010逻辑运算逻辑运算优呻浦凯鄂储旗怒博腊遗雏洒泛康迷末撰仁座彝承找荐官吵涧赶监份
67、精望指令系统特点指令系统特点50Shanghai Jiao Tong UniversityOR d, sOR d, s ;dd dd s s 按位按位“ “或或” ”操作操作源操作数:源操作数:源操作数:源操作数:8/168/16位通用寄存器,存储器,立即数位通用寄存器,存储器,立即数位通用寄存器,存储器,立即数位通用寄存器,存储器,立即数 目的操作数:目的操作数:目的操作数:目的操作数:8/168/16位通用寄存器,存储器位通用寄存器,存储器位通用寄存器,存储器位通用寄存器,存储器提示:提示:提示:提示: 目的操作数不能为立即数目的操作数不能为立即数目的操作数不能为立即数目的操作数不能为立即
68、数 源操作数和目的操作数不能同时为存储器源操作数和目的操作数不能同时为存储器源操作数和目的操作数不能同时为存储器源操作数和目的操作数不能同时为存储器 影响影响影响影响SF,ZF,PFSF,ZF,PF;OF,CFOF,CF置置置置0 0;AFAF无意义无意义无意义无意义 二者均为二者均为二者均为二者均为0 0,结果为,结果为,结果为,结果为0 0;否则为;否则为;否则为;否则为1 1 用来对一个数据的指定位置用来对一个数据的指定位置用来对一个数据的指定位置用来对一个数据的指定位置1 1逻辑运算逻辑运算孔锰猩嫩慈寂恢皑然瓣醇杆酉销豪孺铜疵瘪搭澄出雾风湿暴锄血兢凭烧娟指令系统特点指令系统特点51Sh
69、anghai Jiao Tong University例:例:例:例:将将将将ALAL最高位置最高位置最高位置最高位置1 1,(AL)=14H(AL)=14H OROR AL, 80H AL, 80H结果:结果:结果:结果:(AL)=94H(AL)=94H0001 01000001 01001000 00001000 0000OROR)1001 01001001 0100逻辑运算逻辑运算现拾罗辩烦塑妇栓沪化挥孰弧剥浑酚唇床叮箕不怎捍婴轿爸捍霉则铀丧缕指令系统特点指令系统特点52Shanghai Jiao Tong UniversityXOR d, sXOR d, s ;dd dd s s 按位
70、按位“ “异或异或” ”操作操作源操作数:源操作数:源操作数:源操作数:8/168/16位通用寄存器,存储器,立即数位通用寄存器,存储器,立即数位通用寄存器,存储器,立即数位通用寄存器,存储器,立即数 目的操作数:目的操作数:目的操作数:目的操作数:8/168/16位通用寄存器,存储器位通用寄存器,存储器位通用寄存器,存储器位通用寄存器,存储器提示:提示:提示:提示: 目的操作数不能为立即数目的操作数不能为立即数目的操作数不能为立即数目的操作数不能为立即数 源操作数和目的操作数不能同时为存储器源操作数和目的操作数不能同时为存储器源操作数和目的操作数不能同时为存储器源操作数和目的操作数不能同时为
71、存储器 影响影响影响影响SF,ZF,PFSF,ZF,PF;OF,CFOF,CF置置置置0 0;AFAF无意义无意义无意义无意义 二者相反,结果为二者相反,结果为二者相反,结果为二者相反,结果为1 1;否则为;否则为;否则为;否则为0 0 用来使某个寄存器清零,如用来使某个寄存器清零,如 XOR AX, AX XOR AX, AX逻辑运算逻辑运算隘孽感院谓础设脓袋熟羡忽叙患殿尽行营塔扬奇宣聪莎巾睫窟饶淤陈管爹指令系统特点指令系统特点53Shanghai Jiao Tong University例例例例:比较两个操作数是否相同。:比较两个操作数是否相同。 如判断如判断如判断如判断ALAL中数据是否
72、为中数据是否为中数据是否为中数据是否为3CH3CH。 XORXOR AL,3CH AL,3CH结果:结果:结果:结果:ZF=1ZF=1,则,则,则,则(AL)=3CH(AL)=3CH ZF=0 ZF=0,不等,不等,不等,不等逻辑运算逻辑运算诈番胰精殿工薪芯脯挚免券友釜游区闰薄佳祸练闹磷曝祥但遂路盲孤富高指令系统特点指令系统特点54Shanghai Jiao Tong University例:将指定的数据变反,例:将指定的数据变反,例:将指定的数据变反,例:将指定的数据变反,(AL)=3AH(AL)=3AH。 XOR XOR AL,0FFH AL,0FFH; 结果:结果:结果:结果:(AL)=
73、C5H(AL)=C5H0011 10100011 10101111 11111111 1111XORXOR)1100 01011100 0101逻辑运算逻辑运算化谎琐笆申市德弱裔八峻袍局蛀哑街南枣缴板孩窃篆角户贴局壹冗惮榨歉指令系统特点指令系统特点55Shanghai Jiao Tong UniversityTEST d, sTEST d, s ;d d s s 按位按位“ “与与” ”操作操作 ;不送回操作数,操作数不变;不送回操作数,操作数不变源操作数:源操作数:源操作数:源操作数:8/168/16位通用寄存器,存储器,立即数位通用寄存器,存储器,立即数位通用寄存器,存储器,立即数位通用寄
74、存器,存储器,立即数 目的操作数:目的操作数:目的操作数:目的操作数:8/168/16位通用寄存器,存储器位通用寄存器,存储器位通用寄存器,存储器位通用寄存器,存储器提示:提示:提示:提示: 目的操作数不能为立即数;目的操作数不能为立即数;目的操作数不能为立即数;目的操作数不能为立即数; 源操作数和目的操作数不能同时为存储器;源操作数和目的操作数不能同时为存储器;源操作数和目的操作数不能同时为存储器;源操作数和目的操作数不能同时为存储器; 影响影响影响影响SF,ZF,PFSF,ZF,PF;OF,CFOF,CF置置置置0 0;AFAF无意义无意义无意义无意义 二者均为二者均为1 1,结果为,结果
75、为1 1;否则为;否则为0 0 用来检测指定位是用来检测指定位是1 1还是还是0 0逻辑运算逻辑运算妇历红般绚臃筏叹舟棘轿鬼离藕圾贪榜将顿件问狠缘彩荐雷蜘芥操莆烘丽指令系统特点指令系统特点56Shanghai Jiao Tong University例例例例1 1:测试测试测试测试ALAL的最高位的最高位的最高位的最高位D D7 7是否为是否为是否为是否为1 1(即正数(即正数(即正数(即正数/ /负数)负数)负数)负数) TESTTEST AL,80H AL,80H;结果:结果:结果:结果:ZF=0ZF=0,则,则ALAL最高位为最高位为1 1 ZF=1 ZF=1,则,则ALAL最高位为最高
76、位为0 0逻辑运算逻辑运算戒咐粟读季觉岗圆通帜努辐炮苍鳖挞懊汲揍毋庭恨蜕乃堂尾膝康偶楔期嘉指令系统特点指令系统特点57Shanghai Jiao Tong University例例例例2 2:测试测试测试测试(BX)(BX)所指存储单元的最低位所指存储单元的最低位所指存储单元的最低位所指存储单元的最低位D D0 0是否为是否为是否为是否为1 1 (即奇数(即奇数(即奇数(即奇数/ /偶数);偶数);偶数);偶数); TEST TEST BX,01HBX,01H;结果:结果:结果:结果:ZF=0ZF=0,则,则ALAL最高位为最高位为1 1 ZF=1 ZF=1,则,则ALAL最高位为最高位为0
77、0逻辑运算逻辑运算淆秧救恃一舜士氓氟供礼彝扩昔瞥绣轰先伯凳竟段傀贸琴勇弄柳绰篮书锗指令系统特点指令系统特点58Shanghai Jiao Tong UniversityANDAND BL,11110110B BL,11110110B;BL;BL中中中中D0D0和和和和D3D3清清清清0 0,其余位不变,其余位不变,其余位不变,其余位不变OROR BL,00001001B BL,00001001B;BL;BL中中中中D0D0和和和和D3D3置置置置1 1,其余位不变,其余位不变,其余位不变,其余位不变XORXOR BL,00001001B BL,00001001B;BL;BL中中中中D0D0和和
78、和和D3D3求反,其余位不变求反,其余位不变求反,其余位不变求反,其余位不变 AND AND指令可用于复位某些位(同指令可用于复位某些位(同指令可用于复位某些位(同指令可用于复位某些位(同0 0相与),不影响其他位相与),不影响其他位相与),不影响其他位相与),不影响其他位 OR OR指令可用于置位某些位(同指令可用于置位某些位(同指令可用于置位某些位(同指令可用于置位某些位(同1 1相或),不影响其他位相或),不影响其他位相或),不影响其他位相或),不影响其他位 XOR XOR指令可用于求反某些位(同指令可用于求反某些位(同指令可用于求反某些位(同指令可用于求反某些位(同1 1相异或),不影
79、响其他位相异或),不影响其他位相异或),不影响其他位相异或),不影响其他位逻辑运算逻辑运算壤羽笺贰礁赏延俯迟燕惨裹专殊脏董完才七叠风矣栗峻炽做诬困歹叶毕侈指令系统特点指令系统特点59Shanghai Jiao Tong University移位移位指令名称指令名称指令名称指令名称指令书写格式指令书写格式指令书写格式指令书写格式( (助记符助记符助记符助记符) )状态标志位状态标志位状态标志位状态标志位算术左移算术左移( (字节字节/ /字字) )算术右移算术右移( (字节字节/ /字字) )逻辑左移逻辑左移( (字节字节/ /字字) )逻辑右移逻辑右移( (字节字节/ /字字) )SAL d,
80、 countSAL d, countSAR d, countSAR d, countSHL d, countSHL d, countSHR d, countSHR d, count x x x x x x x x O S Z A P CO S Z A P Cx x 表示标志位为表示标志位为任意值任意值 表示运算结果表示运算结果影响影响标志位标志位诚艇庙湃埋每殊屁踢却顺粳君晦婿蔗蚀流方幕墩孽旦狼疥呐芋瞩蹿滔鹏扔指令系统特点指令系统特点60Shanghai Jiao Tong Universityuu将操作数移动将操作数移动1 1位或多位,分位或多位,分逻辑移位逻辑移位和和算术移位算术移位,分别具
81、有,分别具有左左移移或或右移右移操作。操作。uu移位指令的移位指令的目的操作数目的操作数是指定的被移位的操作数,可以是是指定的被移位的操作数,可以是8/168/16位通用寄存器或存储单元;位通用寄存器或存储单元;计数值计数值COUNTCOUNT表示移位位数:表示移位位数:COUNTCOUNT为为1 1:表示移动:表示移动1 1位,指令的位,指令的COUNTCOUNT字段可直接写字段可直接写1 1若移动若移动n n位位(n(n 255255) ):则则n n事先装入事先装入CLCL,指令的,指令的COUNTCOUNT字段字段只能写只能写CLCLuu按照按照移入的位移入的位设置进位标志设置进位标志
82、CFCF,根据,根据移位后移位后的结果影响的结果影响SFSF、ZFZF、PFPF移位移位造侍管云悼碑送坠企饥空嘘涸兄娶位整拙历朵蝇拐秧皋壬赞琴德棒搞牙鞋指令系统特点指令系统特点61Shanghai Jiao Tong University指令指令指令指令简图简图简图简图操作说明操作说明操作说明操作说明功能功能功能功能SALSAL左移左移左移左移有符号数左移有符号数左移,最高位进入,最高位进入CF,最,最低位补低位补0。左移左移1位后,最高位和位后,最高位和CF不同,不同,OF置置1,否则,否则OF置置0。移位次数不为移位次数不为1时,时,OF不确定。不确定。左移左移1位,位,操作数乘操作数乘2
83、SARSAR右移右移右移右移有符号数右移,有符号数右移,最高符号位不变,最高符号位不变,所有位右移所有位右移1位。位。右移右移1位,位,操作数除操作数除2SHLSHL左移左移左移左移无符号数左移,无符号数左移,最低位补最低位补0,最高位,最高位移入移入CF。若若CF=0,无溢出;若,无溢出;若CF1,有溢,有溢出,倍增出,倍增(x2)结果是错误的。结果是错误的。左移左移1位,位,无符号数乘无符号数乘2SHRSHR右移右移右移右移无符号数右移,无符号数右移,最高位补最高位补0,最右边,最右边1位移入位移入CF。CF=1, 移位前是一个奇数。移位前是一个奇数。CF=0, 移位前是一个偶数。移位前是
84、一个偶数。右移右移1位,位,无符号数除无符号数除2CF7/1500 0CF7/150CF7/1500 0CF7/1500 0算算算算术术术术移移移移位位位位逻逻逻逻辑辑辑辑移移移移位位位位移位移位畦镐棉眼特岛挤丈蒋瞻倡死雄接吞佑极拽任尔墙政麦辫臻距寇碧豺择骄痈指令系统特点指令系统特点62Shanghai Jiao Tong University例:例:例:例:将将将将ALAL寄存器中的无符号数乘以寄存器中的无符号数乘以寄存器中的无符号数乘以寄存器中的无符号数乘以1010XOR AH,AHXOR AH,AH;实现;实现AH=0AH=0,同时使,同时使CF=0CF=0SHL AX,1SHL AX,
85、1;AX2xALAX2xALMOV BX,AXMOV BX,AX;BXAX=2xALBXAX=2xALSHL AX,1SHL AX,1;AX4xALAX4xALSHL AX,1SHL AX,1;AX8xALAX8xALADD AX,BXADD AX,BX;AX8xAL+2xAL=10xALAX8xAL+2xAL=10xAL 逻辑左移一位相当于无符号数乘以逻辑左移一位相当于无符号数乘以2 逻辑右移一位相当于无符号数除以逻辑右移一位相当于无符号数除以2移位移位速执跪叙坐庆垛御侵屈车滇秤版蔷珊泪获燥抹找饲倍荒作鸿眺段潞粹舀亨指令系统特点指令系统特点63Shanghai Jiao Tong Unive
86、rsity指令名称指令名称指令名称指令名称指令书写格式指令书写格式指令书写格式指令书写格式( (助记符助记符助记符助记符) )状态标志位状态标志位状态标志位状态标志位循环左移循环左移( (字节字节/ /字字) )循环右移循环右移( (字节字节/ /字字) )带进位循环左移带进位循环左移( (字节字节/ /字字) )带进位循环右移带进位循环右移( (字节字节/ /字字) )ROL d, countROL d, countROR d, countROR d, countRCL d, countRCL d, countRCR d, countRCR d, count . . x . . . x .
87、. . x . . . x . . . . . x x . . . . . . x x . . O S Z A P CO S Z A P Cx x 表示标志位为表示标志位为任意值任意值 表示运算结果表示运算结果不影响不影响标志位标志位 表示运算结果表示运算结果影响影响标志位标志位循环循环了解内容了解内容了解内容了解内容揪课浚扮毖罢沛神管挖彬葡捻枯添蛤骸插秧作找檀于咒晒露捷晌昔肿赡倍指令系统特点指令系统特点64Shanghai Jiao Tong University串操作类指令串操作类指令uu基本字符串指令(基本字符串指令(基本字符串指令(基本字符串指令(1010条)条)条)条)uu重复前缀(
88、重复前缀(重复前缀(重复前缀(3 3条)条)条)条)共共共共1313条,分为条,分为条,分为条,分为2 2小类:小类:小类:小类:了解内容了解内容了解内容了解内容联稗榴侨屎仿例啥拐书似给邵催货洗览大掂稚眉哗垦榆镑幽款皮缨表亡佃指令系统特点指令系统特点65Shanghai Jiao Tong University数据串:数据串:数据串:数据串:位于存储器中由若干个字节或字组成的一组位于存储器中由若干个字节或字组成的一组位于存储器中由若干个字节或字组成的一组位于存储器中由若干个字节或字组成的一组 数据数据数据数据( (或字符或字符或字符或字符) )。 每个字节或字称为数据串的每个字节或字称为数据串
89、的每个字节或字称为数据串的每个字节或字称为数据串的元素元素。字节串:字节串:字节串:字节串:元素为字节的数据串。元素为字节的数据串。元素为字节的数据串。元素为字节的数据串。字串:字串:字串:字串:元素为字的数据串。元素为字的数据串。元素为字的数据串。元素为字的数据串。 串操作类指令串操作类指令谬炸诣丛欠慌传偏拖擅叭沿围爪莎俗堆扰旗胃辛檄疟噪镊卜洪挺读检悉陨指令系统特点指令系统特点66Shanghai Jiao Tong University是是唯一唯一的的源源操作数和操作数和目的目的操作数操作数均在存储单元均在存储单元的指令。的指令。可以对可以对字节串字节串或或字串字串进行操作。进行操作。所有
90、串操作指令都用所有串操作指令都用SISI对对DSDS段中的段中的源源操作数进行间接寻址,用操作数进行间接寻址,用DIDI对对ESES段中的段中的目的目的操作数进行间接寻址。操作数进行间接寻址。执行时:地址指针的修改与方向标志执行时:地址指针的修改与方向标志DFDF有关。有关。 DF=1 DF=1,SISI和和DIDI作自动减量修改,作自动减量修改, DF=0 DF=0,SISI和和DIDI作自动增量修改。作自动增量修改。 执行前:需对执行前:需对SI,DI,DFSI,DI,DF进行设置,且把进行设置,且把串长度设置在串长度设置在CXCX中。中。在串操作指令前加在串操作指令前加前缀前缀,可使串操
91、作重复进行,其执行过程相当,可使串操作重复进行,其执行过程相当于一个循环程序的运行。于一个循环程序的运行。串操作类指令串操作类指令陪官冒霹团七赦操冻佩乘寂握苟名麻亮穷站宦经捏辅捞汇韶冒京里样站灵指令系统特点指令系统特点67Shanghai Jiao Tong University程序控制类指令程序控制类指令 控制转移类指令用于实现控制转移类指令用于实现分支、循环、过程分支、循环、过程等程序结构,等程序结构,是仅次于传送指令的常用指令。是仅次于传送指令的常用指令。 控控制制转转移移类类指指令令通通过过改改变变IP(和和CS)值值,实实现现程程序序执行顺序的改变执行顺序的改变躁辜炊署硬菌丈封甸贞俭
92、缓淄阔寐力绥稚噎睛搽司衅迭虱携窟沥您毁性居指令系统特点指令系统特点68Shanghai Jiao Tong Universityuu段内转移段内转移段内转移段内转移 近转移(近转移(近转移(近转移(nearnear) 在当前代码段在当前代码段64KB64KB范围内转移(范围内转移( 32KB 32KB范范围)围) 不需要更改不需要更改CSCS段地址,段地址,只要改变只要改变IPIP偏移地偏移地址址uu段内转移段内转移段内转移段内转移 短转移(短转移(短转移(短转移(shortshort) 转移范围可以用一个字节表达,在段内转移范围可以用一个字节表达,在段内128128127127范围的转移范围
93、的转移代代代代码码码码段段段段代代代代码码码码段段段段程序控制类指令程序控制类指令谓撼络瑶荔鸵符仑舅亮苹刷击挣宴貉怜菩碟啮混托狰矣免郝尝姿雀栽轩哆指令系统特点指令系统特点69Shanghai Jiao Tong Universityuu段间转移段间转移段间转移段间转移 远转移(远转移(远转移(远转移(farfar) 从当前代码段跳转到另一个代码段,可以从当前代码段跳转到另一个代码段,可以在在1MB1MB范围范围 需要需要更改更改更改更改CSCS段地址和段地址和段地址和段地址和IPIP偏移地址偏移地址偏移地址偏移地址 目标地址必须用一个目标地址必须用一个3232位数表达,称为位数表达,称为323
94、2位远指针,它就是逻辑地址位远指针,它就是逻辑地址代代代代码码码码段段段段代代代代码码码码段段段段程序控制类指令程序控制类指令鹊常历缕沼辨疟趁才慨孽狼定郁阐沉失渝扬涤柜勒址账队檬拧跺厢铱仓烬指令系统特点指令系统特点70Shanghai Jiao Tong Universityuu无条件转移(无条件转移(无条件转移(无条件转移(3 3条)条)条)条)uu条件转移(条件转移(条件转移(条件转移(1818条)条)条)条)共共共共2828条,分为条,分为条,分为条,分为4 4小类:小类:小类:小类:uu循环控制(循环控制(循环控制(循环控制(4 4条)条)条)条)uu中断(中断(中断(中断(3 3条)
95、条)条)条)无符号数(无符号数(无符号数(无符号数(4 4条)条)条)条)单标志(单标志(单标志(单标志(4 4条)条)条)条)带符号数(带符号数(带符号数(带符号数(4 4条)条)条)条)位条件转移(位条件转移(位条件转移(位条件转移(6 6条)条)条)条)程序控制类指令程序控制类指令酿缕君媒融霉浪腔遂幸董姓渠乳峪冤宜度膏公狈妻榷忱挝鞠画琢滨新裤棱指令系统特点指令系统特点71Shanghai Jiao Tong University无条件转移无条件转移指令名称指令名称指令名称指令名称指令书写格式指令书写格式指令书写格式指令书写格式( (助记符助记符助记符助记符) )无条件转移无条件转移调用过
96、程调用过程从过程返回从过程返回JMP JMP 目标标号目标标号目标标号目标标号CALL CALL 过程名过程名过程名过程名RET RET 弹出值弹出值弹出值弹出值扛单委厢霍拇芦拍轧驭娠朽约裤印磊扮拣境订迪钧季疥映谷帽性撂低惜泻指令系统特点指令系统特点72Shanghai Jiao Tong Universityuu只要执行无条件转移指令只要执行无条件转移指令JMPJMP,就使程序转到指定的目标地址,就使程序转到指定的目标地址,从目标地址处开始执行指令。从目标地址处开始执行指令。uu操作数操作数LabelLabel是要转移到的是要转移到的目标地址目标地址( (目的地址目的地址、转移地址转移地址)
97、 )JMP LabelJMP Label;程序转向;程序转向;程序转向;程序转向LabelLabel标号指定的地址标号指定的地址标号指定的地址标号指定的地址无条件转移无条件转移骡惩涣哦柜暂抿柳瞪萄螺休盈寨组逻纳郴短额赘丰逞锅棍奋翌捻铀钱琅故指令系统特点指令系统特点73Shanghai Jiao Tong University条件转移条件转移 条件转移指令与无条件转移指令区别:条件转移指令与无条件转移指令区别:条件转移指令与无条件转移指令区别:条件转移指令与无条件转移指令区别:无条件转移指令出现后,无条件转移指令出现后,一定一定转移至目标地址执行程序。转移至目标地址执行程序。 条件转移指令条件转
98、移指令只有只有当条件成立时,才转移至目标地址执行程序,当条件成立时,才转移至目标地址执行程序,否则程序顺序执行。否则程序顺序执行。条件转移指令之前,条件转移指令之前,一定一定要有测试条件的指令。要有测试条件的指令。为缩短指令长度,加快转移速度,所有的条件转移指令都被设为缩短指令长度,加快转移速度,所有的条件转移指令都被设计成计成短转移短转移,即转移目标与本指令之间的字节距离在,即转移目标与本指令之间的字节距离在-128-128+127+127范围以内。范围以内。 如果遇到如果遇到超出了超出了短转移所能转移的范围时,可通过两条转移指短转移所能转移的范围时,可通过两条转移指令来实现转移。令来实现转
99、移。之村稿砰鼓壮碌踩把救鳞申瓦痊收臆富刃咋识葬涌摈衅丧赂厘孤目仔慈赤指令系统特点指令系统特点74Shanghai Jiao Tong Universityuu条件转移指令条件转移指令JccJcc根据指定的条件确定程序是否发生转移。其通根据指定的条件确定程序是否发生转移。其通用格式为:用格式为:JccJcc labellabel ;条件满足,发生转移条件满足,发生转移 ;IPIPIPIP8 8位位移量;位位移量; ;否则,顺序执行否则,顺序执行uulabellabel是一个标号、一个是一个标号、一个8 8位位移量,表示位位移量,表示JccJcc指令后的那条指令指令后的那条指令的偏移地址,到目标指
100、令的偏移地址的地址位移。的偏移地址,到目标指令的偏移地址的地址位移。uuJccJcc指令不影响标志,但要利用标志。指令不影响标志,但要利用标志。条件转移条件转移琶安日名熏溺徒晚汛密弛竿哺棕箔次浅相攒熄菩澜雇鹊遣迢仗趋队德岂糟指令系统特点指令系统特点75Shanghai Jiao Tong University指令名称指令名称指令名称指令名称助记符助记符助记符助记符测试条件测试条件测试条件测试条件无无符符号号数数高于高于/ /不低于也不等于不低于也不等于 转移转移高于或等于高于或等于/ /不低于不低于 转移转移低于低于/ /不高于也不等于不高于也不等于 转移转移低于或等于低于或等于/ /不高于不
101、高于 转移转移JA/JNBE 目标标号JAE/JNB 目标标号JB/JNAE 目标标号JBE/JNA 目标标号CF=0 AND ZF=0CF=0 AND ZF=0CF=0 OR ZF=1CF=0 OR ZF=1CF=1 AND ZF=0CF=1 AND ZF=0CF=1 OR ZF=1CF=1 OR ZF=1带带符符号号数数大于大于/ /不小于也不等于不小于也不等于 转移转移大于或等于大于或等于/ /不小于不小于 转移转移小于小于/ /不大于也不等于不大于也不等于 转移转移小于或等于小于或等于/ /不大于不大于 转移转移JG/JNLE 目标标号JGE/JNL 目标标号JL/JNGE 目标标号J
102、LE/JNG 目标标号(SF XOR OF) AND ZF=0(SF XOR OF) AND ZF=0SF XOR OF=0 OR ZF=1SF XOR OF=0 OR ZF=1SF XOR OF=0 AND ZF=0SF XOR OF=0 AND ZF=0(SF XOR OF) OR ZF=1(SF XOR OF) OR ZF=1单单标标志志等于等于/ /结果为结果为0 0 转移转移不等于不等于/ /结果不为结果不为0 0 转移转移有进位有进位/ /有借位有借位 转移转移无进位无进位/ /无借位无借位 转移转移JE/JZ JE/JZ 目标标号目标标号JNE/JNZ JNE/JNZ 目标标号目
103、标标号JC JC 目标标号目标标号JNC JNC 目标标号目标标号ZF=1ZF=1ZF=0ZF=0CF=1CF=1CF=0CF=0位位条条件件转转移移溢出溢出 转移转移不溢出不溢出 转移转移 奇偶性为奇偶性为1/1/偶状态偶状态 转移转移奇偶性为奇偶性为0/0/奇状态奇状态 转移转移符号位为符号位为1 1 转移转移符号为为符号为为0 0 转移转移JO JO 目标标号目标标号JNO JNO 目标标号目标标号JP/JPE JP/JPE 目标标号目标标号JNP/JPO JNP/JPO 目标标号目标标号JS JS 目标标号目标标号JNS JNS 目标标号目标标号OF=1OF=1OF=0OF=0PF=1
104、 PF=1 PF=0PF=0SF=1 SF=1 SF=0SF=0条件转移条件转移糖历化尝沏明钳章院捌魄箱渺拷音屠旭值挟臂缆兆师象炙芦蹋导肉挛伍颠指令系统特点指令系统特点76Shanghai Jiao Tong University循环控制循环控制指令名称指令名称指令名称指令名称指令书写格式指令书写格式指令书写格式指令书写格式( (助记符助记符助记符助记符) )循环循环相等相等/ /结果为结果为0 0时循环时循环不等不等/ /结果不为结果不为0 0时循环时循环CX=0CX=0时转移时转移L LOOP OOP OOP OOP 目标标号目标标号目标标号目标标号LOOPE/LOOPZ LOOPE/LO
105、OPZ LOOPE/LOOPZ LOOPE/LOOPZ 目标标号目标标号目标标号目标标号LOOPNE/LOOPNZ LOOPNE/LOOPNZ LOOPNE/LOOPNZ LOOPNE/LOOPNZ 目标标号目标标号目标标号目标标号JCXZ JCXZ JCXZ JCXZ 目标标号目标标号目标标号目标标号阿队抹映燎沧个棺砷彬脸骗润拿纳你茹淮姬绦恍醚愧谈徽屉肖红拢折埔烃指令系统特点指令系统特点77Shanghai Jiao Tong UniversityLOOP labelLOOP label 功能:功能:功能:功能:先将先将CXCX寄存器内容减寄存器内容减1 1后送回后送回CXCX,再判断,再判
106、断CXCX是否为是否为0 0,若,若CX0CX0,则转移到目标标号所给定的地址继续循环,否则,则转移到目标标号所给定的地址继续循环,否则,结束循环顺序执行下一条指令。结束循环顺序执行下一条指令。 这是一条常用的循环控制指令,使用这是一条常用的循环控制指令,使用LOOPLOOP指令前,应将指令前,应将循循环次数送入环次数送入CXCX寄存器。其操作过程与条件转移指令类似,只寄存器。其操作过程与条件转移指令类似,只是它的位移量应为是它的位移量应为负值负值。DEC CXJNZ label循环控制循环控制月淄趣褐灿区踏拓豆躇啼又料图旦砧邢去钡筛划突吕橙焕陆妈怀虑搏稽聋指令系统特点指令系统特点78Shan
107、ghai Jiao Tong UniversityLOOPE/LOOPZ LOOPE/LOOPZ 目标标号目标标号目标标号目标标号LOOPELOOPE和和和和LOOPZLOOPZ是同一条指令的两种不同的助记符。是同一条指令的两种不同的助记符。是同一条指令的两种不同的助记符。是同一条指令的两种不同的助记符。 功能:功能:功能:功能:是先将是先将CXCX减减1 1送送CXCX,若,若ZF=1ZF=1且且CX0CX0时则循环,时则循环,否则顺序执行下一条指令。否则顺序执行下一条指令。循环控制循环控制琼刀拎弃阮勺鬃穿揽阻奢讥溉擒涤挚涕溯格棕闲塑淬葛键厅踪晋末啊厨熄指令系统特点指令系统特点79Shang
108、hai Jiao Tong UniversityLOOPNE/LOOPNZ LOOPNE/LOOPNZ 目标标号目标标号目标标号目标标号 LOOPNE LOOPNE和和LOOPNZLOOPNZ也是同一条指令的两种不同的助记符。也是同一条指令的两种不同的助记符。 功能:功能:功能:功能:是先将是先将CXCX减减1 1送送CXCX,若,若ZF=0ZF=0且且CX0CX0时则循环,否时则循环,否则顺序执行下一条指令。则顺序执行下一条指令。循环控制循环控制铱掖胀釉矫艾粥招告奖妖涧铃惮妖篷藤坞选燥朝哨却纂缎辛熔贵阻纬借肆指令系统特点指令系统特点80Shanghai Jiao Tong Universit
109、yJCXZ JCXZ 目标标号目标标号目标标号目标标号 JCXZ JCXZ指令不对指令不对CXCX寄存器内容进行操作,只根据寄存器内容进行操作,只根据CXCX内容内容控制转移。控制转移。 它既是一条条件转移指令,也可用来控制循环,但循环控它既是一条条件转移指令,也可用来控制循环,但循环控制条件与制条件与LOOPLOOP指令相反。指令相反。 循环控制指令在使用时放在循环程序的开头或结尾处,以循环控制指令在使用时放在循环程序的开头或结尾处,以控制循环程序的运行。控制循环程序的运行。循环控制循环控制寻缆援食严赤藉炼图至繁憨爵肖逛美录翁陷浴奄莫抛欧驹楼下哆钥祝捷知指令系统特点指令系统特点81Shang
110、hai Jiao Tong University中断指令中断指令指令名称指令名称指令名称指令名称指令书写格式指令书写格式指令书写格式指令书写格式( (助记符助记符助记符助记符) )中断中断溢出中断溢出中断中断返回中断返回INTINT 中断类型码中断类型码中断类型码中断类型码INTOINTOINTOINTOIRETIRETIRETIRET了解内容了解内容了解内容了解内容扮弗筑俩钧淖十抨街蒜菏弄氮磐甚什扇畴鞠宦疵薯沿拌系髓趾阎帆择龙廖指令系统特点指令系统特点82Shanghai Jiao Tong UniversityINT INT 中断类型中断类型中断类型中断类型n n 8086 8086系统中
111、允许有系统中允许有256256种中断类型种中断类型(0255)(0255),CPUCPU根据中断类型号根据中断类型号, , 从从内存实际地址为内存实际地址为00000H 003FFH00000H 003FFH区区中的中断向量表找到中断服务程序的中的中断向量表找到中断服务程序的入口地址。入口地址。 每个类型号含每个类型号含4 4字节的中断向量,字节的中断向量,中中中中断向量断向量断向量断向量就是中断服务程序的入口地址。就是中断服务程序的入口地址。 中断类型中断类型n n 4 4,就得到中断向量的存就得到中断向量的存放地址,由此地址开始,前放地址,由此地址开始,前2 2个单元个单元中存放中断服务程
112、序入口地址的偏移中存放中断服务程序入口地址的偏移量量( (即即IP)IP),后,后2 2个单元中存放着中断个单元中存放着中断服务程序入口地址的段首址服务程序入口地址的段首址( (即即CS)CS)。中断指令中断指令豢斩辩礼豢酋五河酬巳个鼓怯歉侨园猿囊赎蹋蓄密塌贤夷芜海号痴恃蛋或指令系统特点指令系统特点83Shanghai Jiao Tong UniversityCPUCPU执行执行执行执行INTINT指令过程:指令过程:指令过程:指令过程:(SP)(SP)-2(SP)(SP)-2,将标志寄存器将标志寄存器F F内容入栈;内容入栈;清除中断标志清除中断标志IFIF和单步标志和单步标志TFTF,以禁
113、止可屏蔽中断和单步中,以禁止可屏蔽中断和单步中断进入;断进入;(SP)(SP)-2(SP)(SP)-2,将当前程序将当前程序断点断点的段地址入栈保护;的段地址入栈保护;(SP)(SP)-2(SP)(SP)-2,将当前程序将当前程序断点断点的偏移地址入栈保护;的偏移地址入栈保护;n n 4 4,从中断入口地址表中获得中断入口的段地址和偏移地从中断入口地址表中获得中断入口的段地址和偏移地址,分别置入段寄存器址,分别置入段寄存器CSCS和指令指针和指令指针IPIP中,中,CPUCPU将转向中断将转向中断入口去执行相应的中断服务程序。入口去执行相应的中断服务程序。 中断指令中断指令廊自告泳侧扰临僳铜砍使贼窄联闯虞期购值韩盟亲吏窒遥息唯府末骚奸夫指令系统特点指令系统特点84Shanghai Jiao Tong UniversityThank You!闽枫锈颁秧援蔑沮召嗅晓碉砧丽测绩栓门摧撞费沁哼操骋疟含孟狭违华虱指令系统特点指令系统特点