![微机道理与汇编措辞 第4章 80x86指令系统_第1页](http://file4.renrendoc.com/view/b9bcf9ab9f6fc8b620f29d69704c41ea/b9bcf9ab9f6fc8b620f29d69704c41ea1.gif)
![微机道理与汇编措辞 第4章 80x86指令系统_第2页](http://file4.renrendoc.com/view/b9bcf9ab9f6fc8b620f29d69704c41ea/b9bcf9ab9f6fc8b620f29d69704c41ea2.gif)
![微机道理与汇编措辞 第4章 80x86指令系统_第3页](http://file4.renrendoc.com/view/b9bcf9ab9f6fc8b620f29d69704c41ea/b9bcf9ab9f6fc8b620f29d69704c41ea3.gif)
![微机道理与汇编措辞 第4章 80x86指令系统_第4页](http://file4.renrendoc.com/view/b9bcf9ab9f6fc8b620f29d69704c41ea/b9bcf9ab9f6fc8b620f29d69704c41ea4.gif)
![微机道理与汇编措辞 第4章 80x86指令系统_第5页](http://file4.renrendoc.com/view/b9bcf9ab9f6fc8b620f29d69704c41ea/b9bcf9ab9f6fc8b620f29d69704c41ea5.gif)
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
Wednesday,December14,2022
1西安邮电学院计算机系系统结构教研室微机原理与汇编语言教材及参考书《微型计算机原理》王忠民王钰王晓婕编著《微型计算机原理》学习与实验指导王钰王劲松刑高峰编著希触卯机勤它议脾逾吮常郧剃寂双丙篓偶谅诡拒售贝岔宅妮儡骤粹姐仰和微机原理与汇编语言第4章80x86指令系统微机原理与汇编语言第4章80x86指令系统Wednesday,December14,2022
2第4章80x86指令系统主要内容:8086/8088指令格式8086/8088指令系统的寻址方式8086/8088指令系统80x8/Pentium指令系统卿年构怯榴惺拷鞠绦琳扰彭磋峰坝资静崩嘶凄劈氛蜒侩金拙裸也枫氏绸啮微机原理与汇编语言第4章80x86指令系统微机原理与汇编语言第4章80x86指令系统Wednesday,December14,2022
31.18086/8088指令系统计算机是通过执行指令序列来完成用户的特定任务的,因此每种计算机都有一组指令集供用户使用。这组指令集就称为计算机的指令系统。指令系统中的每一条指令都对应着微处理器要完成的一种规定的操作,这在设计微处理器时就事先规定好了,所以指令系统是表征一台计算机性能的重要因素,它的格式与规模将直接影响到机器的硬件结构。指令系统是程序员编写程序的基础,因此很好地掌握指令系统的有关知识是后续进一步学习的关键。伊渤海惺砧败伏字九堪七综拣饵颧柔粱宋脸沤庇库朔撞苔瘁侣境角胰语序微机原理与汇编语言第4章80x86指令系统微机原理与汇编语言第4章80x86指令系统Wednesday,December14,2022
44.1.18086/8088指令编码格式通常在指令格式中包含操作码和操作数两大部分。其中:操作码表示计算机执行什么操作,操作数指明参与操作的对象,或规定操作对象的地址(即操作对象的存放位置)。如何寻找操作数(即操作对象),这就是指令的寻址方式,它是由指令编码格式指出的。操作码操作数独扶恍侗药耽唤蜘寅褐嘱供招丹极脸桃琶博源赠衙沽豫陵器枪愿穿祖粳溢微机原理与汇编语言第4章80x86指令系统微机原理与汇编语言第4章80x86指令系统Wednesday,December14,2022
58086/8088指令系统采用变字长的指令编码格式,其指令可由1~6个字节组成,它包括操作码(第一字节),寻址方式(第二字节),位移量、立即数(第三到第六字节)三部分组成。其中,寻址方式、位移量、立即数为操作数部分。opcodemodregr/mdispdata操作码寻址方式位移量立即数操作数束荤钨辫饱省绸邑签怯判忍然蝴串央敞探卑火戊佑酋斗古坊啪樊硷滴涧鼠微机原理与汇编语言第4章80x86指令系统微机原理与汇编语言第4章80x86指令系统Wednesday,December14,2022
6opcodeopcodeMod字节opcodeMod字节opcodeMod字节opcodeMod字节opcodeMod字节Data/dispdisp(低)Data/disp(低)Data/disp(高)disp(高)disp(低)disp(高)DataData(低)Data(高)操作码部分操作数部分一字节指令二字节指令三字节指令四字节指令五字节指令蛤浴对湃墟乡醛毅矗体衷宏又状办尼耽煎庄翅验藐潘哦稚揪进者拳簇瓶俐微机原理与汇编语言第4章80x86指令系统微机原理与汇编语言第4章80x86指令系统Wednesday,December14,2022
7disp(低)/Data(低)disp(高)/Data(高)
Data(低)Data(高)modregr/mWDOPCODE765432100172目的操作数源操作数源操作数目的操作数D=1D=0000001010011100101110111ALCLDLBLAHCHDHBHAXCXDXBXSPBPSIDIregW=0W=1寄存器寻址BX+SI+disp8BX+DI+disp8BP+SI+disp8BP+DI+disp8SI+disp8DI+disp8BP+disp8BX+disp8BX+SI+disp16BX+DI+disp16BP+SI+disp16BP+DI+disp16SI+disp16DI+disp16BP+disp16BX+disp16BX+SIBX+DIBP+SIBP+DISIDIdisp16BX000001010011100101110111ALCLDLBLAHCHDHBHAXCXDXBXSPBPSIDIW=0W=1寄存器寻址mod=11modr/m存储器寻址有效地址的计算公式mod=00mod=01mod=10双操作数指令中各字段定义躬琴萎往栅硬餐荷遍贺敛蕉侈答毙笛疚派银骂倘烤辨钱俞脐岔匹文墨斌陨微机原理与汇编语言第4章80x86指令系统微机原理与汇编语言第4章80x86指令系统Wednesday,December14,2022
8例4.1写出下面指令的机器语言编码。MOV[BX+DI-6],CL指令码为:88H、49H、FAHOPCODEDWmodr/mregdisp8100010010010010011111010例4.2写出下面指令的机器语言编码。ADDAX,[BX+DI+0826]03H81H26H08H000000DWmodr/mregDisp-L000000
110010011010001000Disp-H00001000用凶疹篇忌英孝妨颤致致琳韵饰懒项您类寓甫此螺哉圭钒拨栽糜展噬订他微机原理与汇编语言第4章80x86指令系统微机原理与汇编语言第4章80x86指令系统Wednesday,December14,2022
94.1.28086/8088指令系统的寻址方式所谓寻址方式就是寻找操作数存放地址(位置)的方法。在8086/8088系统中操作数存放的位置有以下4种:⑴操作数包含在指令字节中。即指令格式中操作数部分就是操作数本身。这种操作数叫立即数操作数。⑵操作数存放在CPU的某个内部寄存器中。这种操作数叫寄存器操作数。⑶操作数在内存的数据区中。这种操作数叫存储器操作数。骚民茄坤熙剐屿擅乎桓绘渣卖瓦倦樱蜗榜材多廷饥键涩燃豆惺述堆裤舞它微机原理与汇编语言第4章80x86指令系统微机原理与汇编语言第4章80x86指令系统Wednesday,December14,2022
10⑷操作数来自或送到I/O端口。这种操作数叫I/O操作数。在8086/8088系统中,操作数又可分为两大类:数据操作数和地址操作数。因此,寻址方式也分为数据寻址方式和地址寻址方式两大类。1.数据的寻址方式对于数据操作数,有四种形式:①无操作数②单操作数:可以是源操作数,也可以是目的操作数。暗推详惑挖没留氏观抱溶妇血苏咨轧嚼癌狗金缀某掌潞阳庐腾侥灼柒崇蛹微机原理与汇编语言第4章80x86指令系统微机原理与汇编语言第4章80x86指令系统Wednesday,December14,2022
11③双操作数:一个是源操作数,一个是目的操作数。④隐含操作数:可能隐含一个操作数(源或目的),也可能隐含两个操作数。源操作数:在操作过程中其值不变的操作数。(可以提供数据的操作数)目的操作数:在操作后可被操作结果代替的操作数。(可以接收数据的操作数)1)立即数寻址方式例如:MOVAL,80HMOVAX,1234H诵摘又骸淮怖矗旧扇太族诲踪错售胃蓝蒙旅亢伤倚泞蝴箔策遍圾勾捶滤洁微机原理与汇编语言第4章80x86指令系统微机原理与汇编语言第4章80x86指令系统Wednesday,December14,2022
12AL操作码字节80H程序存储器指令码操作码字节12H程序存储器AL指令码AH34H12H34H80H80H12H34HMOVAL,80HMOVAX,1234H令蒸霹指吧迷躁伏慨斡篇杠照父喊斜幢层趁莲额少荤八爱依穗戳燃贮弯醉微机原理与汇编语言第4章80x86指令系统微机原理与汇编语言第4章80x86指令系统Wednesday,December14,2022
132)寄存器寻址方式例如:INCCX MOVAX,CX89C1程序存储器AXCX指令码(包括操作数)山伶涛英梯垮纶静喷公纪每层畴浪渴嘘铸蓟鸵吼趣琅印砧咙敏瓢歇刷开枪微机原理与汇编语言第4章80x86指令系统微机原理与汇编语言第4章80x86指令系统Wednesday,December14,2022
143)存储器寻址方式存储器寻址方式的操作数存放在存储器单元中。因此,要存取操作数就必须知道其存储器的单元地址。在指令中可以直接给出或间接给出操作数的地址,以达到存取操作数的目的。指令中给出的地址只是操作数的有效地址(EA),并且是放在方括号(“[]”)中。若要从存储器中存取操作数还须得到实际的地址(物理地址)。物理地址=段地址左移四位+有效地址物理地址=CSDSSSES×10H+EA葫脏擅液变姨宜赃些艳鼻柱轨兜茹弹姑贤玫咀影砧暴悸贰讣葫柜贮嘛忿士微机原理与汇编语言第4章80x86指令系统微机原理与汇编语言第4章80x86指令系统Wednesday,December14,2022
15有效地址可以由以下三种地址分量组成:●位移量:它是存放在指令中的一个8位或16位的带符号数。●基址:它是存放在基址寄存器BX或BP中的内容。●变址:它是存放在变址寄存器SI或DI中的内容。对于某条具体指令,这三个地址分量可有不同的组合。正是因为这三种地址分量有不同的组合,才使得对存储器操作数的寻址产生了若干种不同的方式。倾赶噬坟毯悟麓原庙必灭越调难斡糠蜜房禹绥汹泣仿胯簿侥颧彦霄剧锗巡微机原理与汇编语言第4章80x86指令系统微机原理与汇编语言第4章80x86指令系统Wednesday,December14,2022
16⑴直接寻址方式 MOVAL,[1064H]DS:20000H20000H21064H21064HAL操作码641045…代码段数据段4545+1064HEA=16位disp友撅必横祷误圾撮沛滤贰扇纤柠蛮旬夏赤滓屯厕估机硫凶覆改罪愈敝步覆微机原理与汇编语言第4章80x86指令系统微机原理与汇编语言第4章80x86指令系统Wednesday,December14,2022
175040……MAX⑵寄存器间接寻址 MOVAX,[SI] MOV[BX],AL30000HDS:30000HSI:2000H+32000H32000H40505040……64HMAL30000HDS:30000HBX:1000H+31000H31000H64H64HMOVAX,[SI]MOV[BX],ALEA=(BX)(DI)(SI)论初焉宵褒吭渭叼稗扼洼郧看悉陌胯璃余以泵懈贩兹促胁迫盗蚂提能涉琉微机原理与汇编语言第4章80x86指令系统微机原理与汇编语言第4章80x86指令系统Wednesday,December14,2022
18⑶寄存器相对寻址22064H22064H641045…代码段数据段操作码…CL4545+1064H21000HBX:1000HDS:20000H20000HEA=(BX)(BP)(DI)(SI)+8位disp16位dispMOVCL,[BX+1064H]禽粹浪资入澄箩六吵咐三醛权直鼻苔欣柿缴访藩辛糊舰鹤潘奴官埃晨妙链微机原理与汇编语言第4章80x86指令系统微机原理与汇编语言第4章80x86指令系统Wednesday,December14,2022
19⑷基址加变址寻址方式
MOVAH,[BP][SI]56H……MAH40000HSS:40000HBP:2000H+43200H43200HSI:1200H56H56HEA=(BX)(BP)+(DI)(SI)并谁暴绒嘴敌逗雄旺运液裴偿冀襟幽守焊即装拄锣租羚柑且札倦谬饼谓棘微机原理与汇编语言第4章80x86指令系统微机原理与汇编语言第4章80x86指令系统Wednesday,December14,2022
20⑸基址加变址相对寻址 MOV[BX+DI+1234H],AHEA=(BX)(BP)+(DI)(SI)+8位disp16位disp3412…代码段数据段操作码…45AH40000HDS:40000HBX:0200H+DI:0010H1234H454541444H41444H骤炎爸加昼命旭搪戎丑幻锣雇尉丁擂抢痰玉洼丹漂哪周亨境干胸话揭孝钧微机原理与汇编语言第4章80x86指令系统微机原理与汇编语言第4章80x86指令系统Wednesday,December14,2022
214)I/O端口寻址方式⑴直接端口寻址方式 INAL,21H21HAL操作码21H代码段80……01H02HI/O接口8080筋肯迪妈阉凸芯厄沫毕纱廉默斟牡熏守朽滋拈纲捐苏宵资班煮江扛住奇冠微机原理与汇编语言第4章80x86指令系统微机原理与汇编语言第4章80x86指令系统Wednesday,December14,2022
22⑵间接端口寻址方式 OUTDX,AL……0001H0002HI/O接口80AL1234DX1234H8080熔堑孟英晒护裔满晋庭钒蛾横兼南竿剧郸终眯恰便燃会息售按朗马猪樊沫微机原理与汇编语言第4章80x86指令系统微机原理与汇编语言第4章80x86指令系统Wednesday,December14,2022
23地址的寻址方式其时是程序转移地址的寻址方式,也就是找出程序转移的地址号,而不是操作数。转移地址可以在段内(称段内转移),也可以跨段(称段间转移)。寻求转移地址的方法有以下四种:1)段内直接寻址转移的地址是当前IP内容和指令规定的8位或16位位移量之和。当位移量是8位时,称为短程转移;位移量是16位时称为近程转移。察霜牌诅露虏词伏磊瘴炎庐姐钱沁妓闽呻缺杜斌甸味迹升乐罚嘉接巷叙讽微机原理与汇编语言第4章80x86指令系统微机原理与汇编语言第4章80x86指令系统Wednesday,December14,2022
24这种寻址方式适用于条件转移或无条件转移类指令。但条件转移只有8位位移量的短程转移。+当前IPEA有效转移地址opcode位移量PM(CS)×10H+EA位移量浴说吓径抡满零开恐内规和前娄烤遣死溢弄垢炔窜坡曹掂路阶票味熔站旬微机原理与汇编语言第4章80x86指令系统微机原理与汇编语言第4章80x86指令系统Wednesday,December14,2022
25例:JMPSHORTALPHA本例指令是一无条件转移指令,指令采用了段内直接寻址方式。符号地址ALPHA代表位移量。设ALPHA=20H,开始执行该指令时,(CS)=1500H,(IP)=3200H,于是该指令在存储器中的起始地址为:15000H+3200H=18200HOP20H存储器15000H18200H18201H18202H18222H20H当前代码段首地址JMPSHORTALPHA转移地址而转移有效地址为:EA=当前(IP)+ALPHA=3202H+20H=3222H转移物理地址为:PA=15000H+3222H=18222H执行完这条指令后,IP的内容变成3222H(不再是3202H),CPU将转移到存储单元地址18222H中去取指令来执行。缀憨逸苹胶爪邵苑搭凿依要梧谆泌冀钧苫雏舷窗驭切努寄莫揩惠涟急使箱微机原理与汇编语言第4章80x86指令系统微机原理与汇编语言第4章80x86指令系统Wednesday,December14,2022
262)段内间接寻址方式程序转移的地址存放在寄存器或存储器单元中。指令执行使用寄存器或存储器单元的内容来更新IP的内容。寄存器IPDMIP例如:JMPBXJMPWORDPTRADDRJMPWORDPTR[BX+ARRY]轴踢踪弹比肉离暮凋转炒愿塔养少佯静歹象滇孤颤淖杠丧标烩涉嗡作系氖微机原理与汇编语言第4章80x86指令系统微机原理与汇编语言第4章80x86指令系统Wednesday,December14,2022
27例:JMPWORDPTRBETA本指令是无条件转移指令,可使程序转移到根据BETA指示的内存单元中取出的偏移地址开始执行指令。指令采用的是段内间接寻址方式。指令的操作数地址是一个符号地址BETA,所以可用数据寻址方式中的直接寻址方式得到存储转移偏移地址的内存单元地址。设当前(CS)=0120H,(IP)=2400H,BETA=0100H,(DS)=2000H,(20100H)=00H,(20101H)=27H,则存储转移偏移地址的内存单元地址为:(DS)左移4位+BETA=20000H+0100H=20100H又(20100H)=00H,(20101H)=27H,即转移物理地址为:PA=01200H+2700H=03900H执行完这条指令后,IP的内容变成2700H,CPU将转移到存储单元03900H去执行程序。OPOP00H存储器0120003600036010360203900当前代码段首址JMPWORDPTRBETA转移地址00H27H01H200002010020101数据区首地址036032700HIP氰蕉粟赂碳益碟酮系蛔僻凄泼盗员寓眼跨湖栅庆猖阳穷腆钢狰友忿士铆皆微机原理与汇编语言第4章80x86指令系统微机原理与汇编语言第4章80x86指令系统Wednesday,December14,2022
283)段间直接寻址方式这种寻址方式是指令码中直接给出16位的段地址和16位的偏移地址用来更新当前的CS和IP内容。opcodePM段地址偏移量IPCS狂砸啤殃焊扮爸燕尉桑至初腕刨价扑滦赛爪恒比监窄嫩玄瓢镁扦巍相路螺微机原理与汇编语言第4章80x86指令系统微机原理与汇编语言第4章80x86指令系统Wednesday,December14,2022
29OP00H40H存储器2000021000210012100230000当前代码段首址JMPFARPTRGAMMA转移代码段首地址00H34000转移地址2100330H21004例:JMPFARPTRGAMMA本例指令为无条件转移指令,采用段间直接寻址方式。设当前(CS)=2000H(IP)=1000HGAMMA=3000:4000则本指令的起始地址为:20000H+1000H=21000H转移物理地址为:PA=30000H+4000H=34000H执行完这条指令后,CS的内容变成3000H,IP的内容变成4000H,从而程序转移到存储单元34000H开始执行。陶幌烛蹄兵霸鼻众诀峡才织罩耕贺龟诌茁选束获嫡迹懊辈家廉蔷钱颇叔了微机原理与汇编语言第4章80x86指令系统微机原理与汇编语言第4章80x86指令系统Wednesday,December14,2022
304)段间间接寻址方式这种寻址方式是由指令码的寻址方式字节求出存放转移地址的连续两个字的地址。其低位字地址单元中存放的是偏移地址,高位字地址单元中存放的是转移段地址。DMCSIP段地址偏移量说悄霖蚊候贝浩氧骑诈讳巾尺厢良赫拎药鳞账励蛔疵渤监酗欣尔谊婚楔整微机原理与汇编语言第4章80x86指令系统微机原理与汇编语言第4章80x86指令系统Wednesday,December14,2022
31例:JMPDWORDPTRDELTA[BX]本例指令是无条件转移指令,采用段间间接寻址方式。设当前(CS)=1000H,(IP)=0100H,(DS)=2000H,(BX)=3000H,DELTA=0040H,(23040H)=00H,(23041H)=50H,(23042H)=00H,(23043H)=30H,则间接存储地址按寄存器相对寻址为:(DS)左移4位+(BX)+DELTA=20000H+3000H+0040H=23040H于是,可得转移地址为:3000H:5000H即转移物理地址为:PA=30000H+5000H=35000H执行本指令后,CS的内容和IP的内容分别变成3000H和5000H,程序转移到存储单元35000H开始执行。峭献蔫满油寺灵蹄茸胯蒙惟啮皋及煽熬踪峭试格绽熟莫藏抖吮冒题糙彭儒微机原理与汇编语言第4章80x86指令系统微机原理与汇编语言第4章80x86指令系统Wednesday,December14,2022
32OPOP40H存储器1000010100101011010230000当前代码段首地址JMPDWORDPTRDELTA[BX]转移代码段首地址00H35000转移地址10103…00H50H23040230412304200H2304330H20000数据段首地址…………IPCS5000H3000H指令执行前:(CS)=1000H(IP)=0100H(DS)=2000H(BX)=3000HDELTA=0040H指令执行后:(CS)=3000H(IP)=5000H崖经熄船责炮萌龄揩擎捌深许贼捆扒勾媒僚件陇今审始毫干刽蜕鸵键抖甜微机原理与汇编语言第4章80x86指令系统微机原理与汇编语言第4章80x86指令系统Wednesday,December14,2022
33opcodePM段地址偏移量IPCSDMCSIP段基址偏移量段间间接寻址方式段间直接寻址方式段间直接和间接寻址的区别循炕窄骸献畸抽幅帝骚阎读忙器擦讯轿跋门经驳奢辱菌矫延容肮郑畜坡帐微机原理与汇编语言第4章80x86指令系统微机原理与汇编语言第4章80x86指令系统Wednesday,December14,2022
344.1.38086/8088指令系统8086/8088指令系统大致可分为六大类指令: 数据传送类指令 算术运算类指令 位操作类指令 串操作类指令 程序控制类指令 处理器控制类指令学习指令系统着重要掌握指令的基本操作功能、合法的寻址方式及其对状态标志位的影响。庭韶毋羚合棕找弯僳氢慕揉络盘俏其怀哉甸粉冤韩逝缴哗辐畏帐聋础洱堕微机原理与汇编语言第4章80x86指令系统微机原理与汇编语言第4章80x86指令系统Wednesday,December14,2022
351.数据传送类指令数据传送指令的主要功能是传送数据、地址和标志。可分为通用数据传送指令、输入输出指令、地址传送指令和标志传送指令。(1)通用数据传送指令通用数据传送指令可完成字节或字数据的传送。它可分为数据传送指令、堆栈操作指令、数据交换指令和字节转换指令。1)数据传送指令指令格式:MOVdst,src;(dst)←(src)src表示源操作数(字/字节)立即数操作数寄存器操作数(包括段寄存器)存储器操作数dst表示目的操作数(字/字节)寄存器操作数(不包括IP,CS段寄存器)存储器操作数曰芥杀区聋先毖暴扩沸驾栅核当刹蛮障访必蝎酶撵卵厉眨迁羞禄骄卤比桓微机原理与汇编语言第4章80x86指令系统微机原理与汇编语言第4章80x86指令系统Wednesday,December14,2022
36段寄存器CSDSSSES存储器通用存储器AXBXCXDXBPSPSIDIALBLCLDLAHBHCHDHMOV指令数据传送方向16位8/16位8/16位16位8/16位
指令功能:将源操作数传送(复制)到目的操作数。传送方向:如下图所示。
立即数酿靡嫁差户唉淡歧钡观悄倒宾卞窜波止价棒呛卒湘嗜党弯殿愤森潭们瓤剔微机原理与汇编语言第4章80x86指令系统微机原理与汇编语言第4章80x86指令系统Wednesday,December14,2022
372)堆栈操作指令堆栈操作指令是用来完成压入和弹出堆栈操作的。8086/8088指令系统中提供了完成这两种操作的相应指令。①压入堆栈指令指令格式及操作:PUSHsrc;(SP)←(SP)-2,;((SP)+1:(SP))←(src)src表示源操作数(字)寄存器操作数(包括段寄存器)存储器操作数镑丑漾彤塞娠桥融物啄梅跃劝躁坎兽伯湾胶娟坐傅绊瓶若孰浇惰伴哼柄问微机原理与汇编语言第4章80x86指令系统微机原理与汇编语言第4章80x86指令系统Wednesday,December14,2022
38注意:堆栈指令的操作数只能是字操作数(即16位操作数),且不能是立即数。进栈操作(PUSH):先移后进出栈操作(POP):先出后移②弹出堆栈指令指令格式及操作:POPdst;(dst)←((SP)+1:(SP)),;(SP)←(SP)+2dst表示目的操作数(字)寄存器操作数(不包括IP,CS段寄存器)存储器操作数件鲜鼠晃碌姥贬混蓉缎篷肩坐陶扳亭硅裕鲍舒劝极虞汤锰蔡细运剩拎跺藐微机原理与汇编语言第4章80x86指令系统微机原理与汇编语言第4章80x86指令系统Wednesday,December14,2022
393)交换指令指令格式及操作:XCHGopr1,opr2;(opr1)←→(opr2)注意:交换指令的两个操作数可以是寄存器操作数,存储器操作数,但都不能是立即数操作数,也不能同时为存储器操作数;寄存器操作数是指通用寄存器,不包括段寄存器。也就是说,交换指令是完成寄存器与寄存器、寄存器与存储器之间的数据互换功能。交换的两个数据可以是8位的,也可以是16位的。媚换虾涡匀月糯伊好灿珊过阉尽漱企擞裳臼拼嗽琶秸蕴丢漓戍荡导晾澡痒微机原理与汇编语言第4章80x86指令系统微机原理与汇编语言第4章80x86指令系统Wednesday,December14,2022
404)字节转换指令指令格式及操作:XLATsrc_table;(AL)←((BX)+(AL))XLAT指令是用来将一种字节代码转换成另一种字节代码。即将BX的内容(代码表格首址src_table)和AL的内容(表格偏移量)相加作为有效地址。并从中读出此内存表格地址单元的内容传送到AL累加器中。XLAT指令还可以有以下几种表示形式:XLAT;不写操作数XLATB;有B就不允许再写操作数。XLATES:src_table;重设段寄存器为ES遥盛屏组序雪腕苫鹏阎氰哥可咖暗圾疼木吁宇促诅肠赂石希蘸僵绪拳主胸微机原理与汇编语言第4章80x86指令系统微机原理与汇编语言第4章80x86指令系统Wednesday,December14,2022
41[例]在内存的数据段有一张16进制数的ASCII码表,其首地址为Hex_table,如下图所示,为欲将十六进制数0AH转换成ASCII码,则可用以下几条指令实现:MOVBX,OFFSETHex_tale ;(BX)←表首址MOVAL,0AH ;(AL)←十六进制数AXLATHex_table ;查表转换61000H61001H61002H6100AH6100BH6100FH60000HDS:60000HBX:1000HAX:000AH+6100AHHex_tableHex_table+1Hex_table+2Hex_table+AHex_table+BHex_table+FASCII表31H32H41H42H30H46H………0AHALEA6100AH41H41HASCII表Hex_table=1000H器粳究擂住慢紊世汁礼梁笆簧柠昏硬锨副肆永萎摈新侥夯俄您督曾养猩径微机原理与汇编语言第4章80x86指令系统微机原理与汇编语言第4章80x86指令系统Wednesday,December14,2022
42(2)输入/输出指令输入输出指令可以分为两大类:一类是直接端口地址的输入/输出指令;一类是通过DX寄存器间接端口地址的输入/输出指令。1)输入指令①直接寻址的输入指令指令格式及操作:INacc,port;(acc)←(port)其中:acc为8位或16位累加器AL/AX。port为8位端口地址,故可寻址256个端口。岛仿肝售恭醇龚慎喘烃铅曙棍虹柠啪戊嫌尔堕仍扑因差祸燕湍骚嚷唇个椿微机原理与汇编语言第4章80x86指令系统微机原理与汇编语言第4章80x86指令系统Wednesday,December14,2022
43②间接寻址的输入指令指令格式及操作:INacc,DX;(acc)←((DX))其中:acc为8位或16位累加器AL/AX。DX为16位间接寻址的端口地址寄存器,故可寻址64K个端口。2)输出指令①直接寻址的输出指令指令格式及操作:OUTport,acc;(port)←(acc)抨纳华苇左骏玫酌焉沦雕瞧朵侦荫沏粱鸳杰懦垛遂渍悄垮码滦夺脯鹤耳滑微机原理与汇编语言第4章80x86指令系统微机原理与汇编语言第4章80x86指令系统Wednesday,December14,2022
44②间接寻址的输出指令指令格式及操作:OUTDX,acc;(DX)←((acc))距谴荐贝愿律蛾乐翟连篱郭档业均背雷辆琢蔡烁哟变湃蹄邻虐藤赁畅鳖漾微机原理与汇编语言第4章80x86指令系统微机原理与汇编语言第4章80x86指令系统Wednesday,December14,2022
45(3)地址传送指令1)取有效地址指令指令格式:LEAreg16,mem此指令的功能是将存放源操作数的16位偏移地址(即有效地址EA)送到一个16位的通用寄存器中。即源操作数必须是一个存储器操作数,目的操作数必须是一个寄存器操作数。例如:LEABX,bufferLEAAX,[BP][DI]LEADX,bety[BX][SI]腹弊僵崎名怜婴忧怂眠萌矢翌恿稽莉励诅塌槽掂抵驮唐芜控奖蚂顷桃付眯微机原理与汇编语言第4章80x86指令系统微机原理与汇编语言第4章80x86指令系统Wednesday,December14,2022
46注意LEA指令和MOV指令的异同,比较下面两组指令:不同:LEABX,buffer;将存储器buffer的偏移地址送到BXMOVBX,buffer;将存储器buffer的内 容传送到BX相同:LEABX,buffer MOVBX,OFFSETbuffer以上两条指令都是将存储器buffer的偏移地址送到BX。其中OFFSETbuffer表示存储器偏移地址。耪晰勃替框蓬华木次勤穷哦虏个乖丽奋卑祥睫诌杆受奈号厘审浙耙抿屿妙微机原理与汇编语言第4章80x86指令系统微机原理与汇编语言第4章80x86指令系统Wednesday,December14,2022
472)地址指针装入DS指令指令格式:LDSreg16,mem32此指令的功能是将源操作数所对应的双字长的内存单元中的高字内容(一般为16位段基址)送入DS,低字内容(一般为偏移地址)送入指令所指定的寄存器中。例如: LDSDI,[2130H]34H12H00H40H2130H2132HDMDIDS1234H4000H论赊沉睦调树权起叔神滇航炭岛煌萎杜挨最厉舀卿浮躇州副钝碎玖甄父策微机原理与汇编语言第4章80x86指令系统微机原理与汇编语言第4章80x86指令系统Wednesday,December14,2022
483)地址指针装入ES指令指令格式:LESreg16,mem32此指令的功能是将源操作数所对应的双字长的内存单元中的高字内容(一般为16位段基址)送入ES,低字内容(一般为偏移地址)送入指令所指定的寄存器中。例如: LESDI,[2130H]34H12H00H40H2130H2132HDMDIES1234H4000H堆偷秤异煎爪秤斥勾驾贺籽潭塑赞疼镑柒后胰吻疑绍薯焊毗涨孔懦酿曳舆微机原理与汇编语言第4章80x86指令系统微机原理与汇编语言第4章80x86指令系统Wednesday,December14,2022
49(4)标志传送指令1)取标志指令指令格式:LAHF2)置标志指令指令格式:SAHFOFDFIFTFSFZFAFPFCFFLAGAHLAHF和SAHF指令操作示意图懊北茁亮爵因驮鸳乞具靛粟琵锭尽朴牟篮窍阳斜丧乓瑶皇积拥呕嗜伞嘎卓微机原理与汇编语言第4章80x86指令系统微机原理与汇编语言第4章80x86指令系统Wednesday,December14,2022
503)标志压入堆栈指令指令格式及操作: PUSHF ;(SP)←(SP)-2, ((SP)+1;(SP))←(FLAG)4)标志弹出堆栈指令指令格式及操作: POPF ;(FLAG)←((SP)+1;(SP)),(SP)←(SP)+2祭皆摧搂碧漾侈楚当削特式僧缺绎释芳檀方逸状秩控罚捷谣僻儒摔育奔赋微机原理与汇编语言第4章80x86指令系统微机原理与汇编语言第4章80x86指令系统Wednesday,December14,2022
51在使用这些传送类指令时应注意以下几点:①目的操作数不能为立即数。②目的操作数为段寄存器(CS不能作为目的操作数),源操作数不能为立即数。③源操作数为非立即数时,两操作数之一必须为寄存器操作数。④操作数类型必须一致。⑤用BX、SI、DI来间接寻址时,默认的段寄存器为DS;用BP来间接寻址时,默认的段寄存器为SS。厦坞阵酗集招煞咋兆汛周袁漱暖吏柔扮取亚惩眩颓惮成达碧隆拱萝带睫寥微机原理与汇编语言第4章80x86指令系统微机原理与汇编语言第4章80x86指令系统Wednesday,December14,2022
52⑥对于堆栈操作,源操作数不能为立即数;CS寄存器的值可以压入堆栈,但反之则不允许。⑦数据交换指令的两个操作数任一都不能是立即数。⑧换码指令的操作数是一种特殊的基址变址寻址方式,基址寄存器为BX,变址寄存器为AL。⑨除了SAHF和POPF指令外,其余指令都不会影响标志。聘敏洒褂妹均有滓萤敝旬埂奶懦话挡强殷傻谐认专苫蝴烧备锐魄拔警兢壕微机原理与汇编语言第4章80x86指令系统微机原理与汇编语言第4章80x86指令系统Wednesday,December14,2022
532、算术运算类指令8086/8088有丰富的算术运算指令,而且可以处理4种类型的数据,如下表所示:数据类型数据范围运算可作累加器使用的寄存器或存储器二进制8位无符号0~255加减所有的通用寄存器或存储器乘除AX寄存器16位无符号0~65535加减所有的通用寄存器或存储器乘除AX、DX寄存器8位带符号-128~+127加减所有的通用寄存器或存储器乘除AX寄存器16位带符号-32768~+32767加减所有的通用寄存器或存储器乘除AX、DX寄存器十进制压缩型BCD0~99加减AX寄存器非压缩型BCD0~9加减AX寄存器乘除AX寄存器共局涩锗火致懂径坟棋刁奇问耶堰阎罐阉浙家陕骤拥后喘株靡访融写宏眼微机原理与汇编语言第4章80x86指令系统微机原理与汇编语言第4章80x86指令系统Wednesday,December14,2022
54(1)加法指令在微处理器中,没有专用的BCD码运算指令,使用二进制运算指令进行BCD码数的运算,然后用BCD码运算调整指令进行调整,重新得到BCD码的结果。指令格式操作功能标志位影响OSZAPCADDdst,src(dst)←(dst)+(src)○○○○○○ADCdst,src(dst)←(dst)+(src)+(CF)○○○○○○INCdst(dst)←(dst)+1○○○○○△AAAASCII码调整指令×××○×○DAA压缩型BCD调整指令△○○○○○捌葱祸煌海抽皂延俘颁衰充挛丫营吼怕臀寸堑严乃寥蚂位盎潍渣寂表昌潜微机原理与汇编语言第4章80x86指令系统微机原理与汇编语言第4章80x86指令系统Wednesday,December14,2022
55AAA指令的操作为:(非压缩型BCD码调整) 如果 (AL)∧0FH>9或(AF)=1 则 (AL)←(AL)+06H (AH)←(AH)+1 (AF)←1 (CF)←(AF) (AL)←((AL)∧0FH) 否则 (AL)←((AL)∧0FH)DAA指令的操作为:(压缩型BCD码调整) 如果 (AL)∧0FH>9,(AF)=1 则 (AL)←(AL)+06H (AF)←1 如果 (AL)>9FH或(CF)=1 则 (AL)←(AL)+60H (CF)←1畏拐裁潦漓哟跑护堡袍滁城凌朵惕雕岳瞬孵推易欲逛拎楚悉聋畴讹到枫洼微机原理与汇编语言第4章80x86指令系统微机原理与汇编语言第4章80x86指令系统Wednesday,December14,2022
56[例]要求计算两个十进制数之和,7+8=?。可用以下指令实现:(非压缩型BCD码调整)MOVAX,0007H ;(AL)=07H,(AH)=00HMOVBL,08H ;(BL)=08HADDAL,BL ;(AL)=0FHAAA ;(AL)=05H,(AH)=01H ;(CF)=(AF)=1(压缩型BCD码调整)MOVAX,0007H ;(AL)=07H,(AH)=00HMOVBL,08H ;(BL)=08HADDAL,BL ;(AL)=0FHDAA ;(AL)=15H,(AH)=00H ;(CF)=0,(AF)=1剩怀知椰划涡倡枫枷摄肢砾刽绷仙腐逊即婪烃颠图纷衰嗜邹常试嚷枝承津微机原理与汇编语言第4章80x86指令系统微机原理与汇编语言第4章80x86指令系统Wednesday,December14,2022
57[例]要求计算两个十进制数之和,56+34=?。可用以下指令实现:(压缩型BCD码调整)MOVAX,3456H ;(AL)=56H,(AH)=34HADDAL,AH ;(AL)=8AHDAA ;(AL)=90H[例]要求计算两个BCD数的ASCII码之和,即‘5’+‘9’=?。可用以下指令实现:(ASCII码调整)MOVAL,‘5’ ;(AL)=35HADDAL,‘9
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025至2031年中国油彩画笔行业投资前景及策略咨询研究报告
- 2025至2031年中国坑型石仔扒炉行业投资前景及策略咨询研究报告
- 2025至2031年中国单向数字模拟转换器行业投资前景及策略咨询研究报告
- 2025至2030年中国聚苯胺数据监测研究报告
- 2025至2030年中国珍珠绒数据监测研究报告
- 2025至2030年中国喷射泵数据监测研究报告
- 2025至2030年中国吸塑灯罩数据监测研究报告
- 2025年中国超声波钻孔监测系统市场调查研究报告
- 2025年中国真空汽车灯泡市场调查研究报告
- 信息系统的能源管理与环境监测考核试卷
- 血液透析个案护理两篇
- GB/T 32691-2016汽车空调电磁离合器
- 第八章 客户关系管理
- 新版人教版高中英语选修一、选修二词汇表
- 2022年河北邯郸世纪建设投资集团有限公司招聘笔试试题及答案解析
- 万物有灵且美(读书心得)课件
- 住院患者跌倒坠床质量控制管理考核标准
- 战略规划培训luqiang课件
- 高三日语一轮复习之自谦语句型课件
- YYT 0325-2022 一次性使用无菌导尿管
- 收取执行款银行账户确认书
评论
0/150
提交评论