版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
苗清影qymiao@80X86微处理器的指令系统格式:XCHGdest,src; (dest)(src)执行操作:把一个字节或一个字的源操作数与目的操作数相交换。可以实现:寄存器之间,寄存器和存储器之间注意:存储器之间不能交换,两个操作数中必须有一个在寄存器;段寄存器不能作为一个操作数;允许字或字节操作,不影响标志位。交换指令(Exchange) XCHGBL,DL XCHGAX,SI XCHGCOUNT[DI],AX XCHG[BX],[DI] XCHGDS,AX应用实例例一:BL=88H,CL=17H,AX=2500H,DX=0100H XCHGAX,DX XCHGBL,CL DX=? CL=?例二:BX=6F30H,BP=0200H,SI=0046H,SS=2FOOH, (2F246H)=4154H XCHGBX,[BP+SI] BX=? (2F246H)=?结果为:AX=0100H DX=2500H CL=88HBX=4154H (2F246H)=6F30H应用实例格式:XLATstr_table;(AL)←((BX)+(AL))
或XLAT str_table—表格符号地址(首地址),只是为了提高可读性而设置,汇编时仍用BX。
XLAT换码指令
先建立一个字节表格;表格首偏移地址存入BX;需要转换代码的序号(相对与表格首地址位移量)存入 AL;表中第一个元素的序号为0)执行XLAT指令后,表中指定序号的元素存于AL中。
(AL)为转换的代码。XLAT换码指令若把字符的扫描码转换成ASCII码;或数字0~9转换成7段数码所需要的相应代码(字形码)等就要用XLAT指令。例:内存的数据段中有一张十六进制数字的ASCII码表。
首地址为:Hex_table,欲查出表中第10个元素(‘A’)。XLAT指令实例执行指令序列:MOVBX,OFFSETHex_tableMOVAL,0AHXLATHex_table假设:(DS)=F000H,
Hex_table=0040H (AL)=0AH执行XLAT以后:(AL)=41H=(F004AH), 即“A”的ASCII码。30H31H32H...39H41H42H...46H...Hex_tableHex_table+1Hex_table+2Hex_table+0AHHex_table+0BHHex_table+0FH'F''B''A''9''1''2''0'16进制数的ASCII码表XLAT指令实例例:
BX=4040H, AL=0AH, DS=F000A, (F404AH)=20H XLAT AL=?
物理地址=?答案:
AL=20H
物理地址=F0000H+4040H+0AH=F404AHXLAT指令实例1、IN(Inputbyteorword)2、OUT(Outputbyteorword)
输入指令用于CPU从外设端口接受数据,输出指令用于CPU向外设端口发送数据。无论接受还是发送数据,必须通过累加器AX或AL,又称累加器专用传送指令。输入、输出指令不影响标志位。输入输出指令每个外设要占几个端口:数据口,状态口和控制口。输入输出指令信息交换要通过端口在IBMPC机里,可以配接许多外部设备,每个外设与CPU之间交换数据,状态信息和控制命令,每一种信息交换都要通过一个端口来进行。端口数:外部设备最多有65536个I/O端口。A0~A15译码形成。端口号:端口号(即外设端口地址)为0000H~FFFFH。PC机仅使用A0~A9译码形成I/O口地址,即1024H个口地址,端口号:0000H~03FFH,其中:A9=1,表示扩充槽上的口地址。输入输出指令长格式:端口号中前256个端口(0~FFH),可以直接写在指令中,这就是长格式。端口号代替指令中的PORT,机器指令用二字节表示,第二字节就是端口号。短格式:当端口号≥256时,只能使用短格式,必须先把端口号放到DX寄存器中。不需要用任何段寄存器来修改它的值。输入输出指令格式:INacc,port;(acc)(port)具体形式有四种:
INAL,data8;端口地址8位,输入一个字节
INAX,data8;端口地址8位,输入一个字
INAL,DX ;端口地址16位,输入一个字节
INAX,DX ;端口地址16位,输入一个字
必须通过累加器AX(字)或AL(节)输入数据。IN输入指令格式:OUTport,acc;(port)(acc)具体形式有四种:OUTdata8,AL;端口地址8位,输出一个字节OUTdata8,AX;端口地址8位,输出一个字OUTDX,AL;
端口地址16位,输出一个字节OUTDX,AX;
端口地址16位,输出一个字必须通过累加器AX(字)或AL(节)输出数据。OUT输出指令例1:实现(29H)(28H)→(DATA_WORD) INAX,28H MOVDATA_WORD,AX例2:从端口3FCH送一个字到AX寄存器
MOVDX,3FCH INAX,DX; (AL)←(3FCH),(AH)←(3FDH)
例3:实现将(AL)→(05H) OUT05H,AL;(05H)←(AL)应用举例
地址指针写入指定寄存器或寄存器对指令。
1、LEA(LoadEffectiveAddress) 2、LDS(LoadpointerusingDS) 3、LES(LoadpointerusingES)目的地址传送指令格式:LEAreg16,mem16;EA(reg16)功能:加载有效地址,用于写近地址指针。把指令中指定的存储器操作数有效地址装入指定的寄存器。例:设(BX)=0400H,(SI)=003CH LEABX,[BX+SI+0F62H]执行指令后:EA= ? (BX)=?EA=(BX)+(SI)+0F62H=0400H+003CH+0F62H=139EH(BX)=139EHLEA(LoadEffectiveAddress)(DS)=3000H;BUFFER=1000H(31000H)=0040H1.LEA指令与MOV的区别LEABX,BUFFER;(BX)=1000HMOVBX,BUFFER;(BX)=0040HLEA指令与MOV等价LEABX,BUFFER;(BX)=1000HMOVBX,OFFSETBUFFER;(BX)=1000H2.LEA指令中的目标寄存器必须是16位的通用寄存器,源操作数必须是一个存储器。应用举例格式:LDSreg16,mem32;(reg16)←(EA) (DS)←((EA)+2))功能:将指令指定32位地址指针送指令指定寄存器和DS。将指令指定mem32单元的前两个单元内容(16位偏移量)装入指定通用寄存器,把后两个单元内容(段地址)装入到DS段寄存器。LDS(LoadpointerusingDS)假设:(DS)=C000H指令: LDSSI,[0010H]执行指令后:(SI)=?(DS)=?
(SI)=0180H(DS)=2000H应用举例假设:
(DS)=0110H (0110H)=0780H (01112H)=2090H指令: LDSSI,[0010H]
(SI)=? (DS)=?
执行指令后:(SI)=0780H(DS)=2090H应用举例格式:LESreg16,mem32;(reg16)←(EA) (ES)←((EA)+2))功能:把源操作数指定的4个相继字节送指令指定的寄存器 及ES寄存器中。此指令常常指定DI寄存器。将指令指定mem32单元的前两个单元内容(16位偏移量)装入指定通用寄存器,把后两个单元内容(段地址)装入到ES段寄存器。LES(LoadpointerusingES)假设:
(DS)=B000H (BX)=080AH指令: LESDI,[BX]执行指令后:(DI)=? (ES)=?(DI)=05A2H(ES)=4000H应用举例(DS)=5000HTABLE=1000H分析下列指令执行结果:
MOVBX,TABLEMOVBX,OFFSETTABLELEABX,TABLELESBX,TABLELDSBX,TABLE应用举例(DS)=5000HTABLE=1000H指令执行结果:
MOVBX,TABLE;(BX)=0040HMOVBX,OFFSETTABLE;(BX)=1000HLEABX,TABLE;(BX)=1000HLESBX,TABLE;(BX)=0040H,(ES)=3000HLDSBX,TABLE;(BX)=0040H,(DS)=3000H应用举例采用了隐含寄存器(AH、Flags)操作数方式。8086有四条标志传送操作指令:1.LAHF(LoadAHintoflags)2.SAHF(StoreAHintoflags)3.PUSHF(Pushflagsontostack)4.POPF(Popflagsoffstack)
标志传送指令1.LAHF(LoadAHflags)格式:LAHF;(AH)←(PSW的低字节)功能:标志寄存器低八位(AH)LAHF指令操作图示意2.SAHF(StoreAHintoflags)
格式:SAHF;(PSW的低字节)←(AH)
功能:(AH)送标志寄存器低八位。3.PUSHF(Pushflagsontostack)
格式:PUSHF;(SP)←(SP)-2 ((SP)+1,(SP))←(PSW)
功能:标志进栈。4.POPF(Popflagsoffstack)
格式:POPF;(PSW)←((SP)
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 北师大版一年级下册数学第五单元 加与减(二) 测试卷及参考答案(黄金题型)
- 煤炭开采引发地质灾害调查报告(6篇)
- 关于大学生暑假实习心得
- 湖南省常德市2023-2024学年五年级上学期语文期末试卷(含答案)
- 解除租房合同需要哪些条件
- 诚信代理服务合同机构
- 诚恳道歉自白书
- 语文大专班试题
- 语文要素教学的策略与实践
- 购房合同中的交房时间
- 2023年跨境电商产业园项目评估分析报告
- 山西省太原市(2024年-2025年小学四年级语文)人教版小升初真题((上下)学期)试卷及答案
- 计算机病毒课件
- 中国电气装备许继集团招聘笔试题库2024
- 风电类居间合同模板
- 2024年广东中山市交通运输局所属事业单位招聘3人历年高频500题难、易错点模拟试题附带答案详解
- 第18课《我的白鸽》课件2024-2025学年统编版语文七年级上册
- 2024至2030年中国口腔清洁护理用品行业发展预测及投资策略报告
- 开具保函委托协议书范本
- 坠床不良事件分析分析报告
- 医学课件乳腺疾病2
评论
0/150
提交评论