微机系统与接口:第三讲(1)指令系统

上传人:努力****83 文档编号:239827282 上传时间:2024-02-22 格式:PPT 页数:47 大小:696.50KB
收藏 版权申诉 举报 下载
微机系统与接口:第三讲(1)指令系统_第1页
第1页 / 共47页
微机系统与接口:第三讲(1)指令系统_第2页
第2页 / 共47页
微机系统与接口:第三讲(1)指令系统_第3页
第3页 / 共47页
资源描述:

《微机系统与接口:第三讲(1)指令系统》由会员分享,可在线阅读,更多相关《微机系统与接口:第三讲(1)指令系统(47页珍藏版)》请在装配图网上搜索。

1、 第二章指令系统本章主要内容本章主要内容l寻址方式寻址方式l8086/8088指令系统指令系统学习网站:学习网站:http:/ 03 019 015 00000段基址段基址偏移量偏移量物理地址物理地址逻辑地址逻辑地址物理地址物理地址寻址方式的种类寻址方式的种类1、立即寻址(、立即寻址(ImmediateAddressing)MOVAL,100;MOVCX,2000H;2、寄存器寻址(、寄存器寻址(RegisterAddressing)MOVDS,AX;MOVCX,BX;MOVSI,DX3、直接寻址(、直接寻址(DirectAddressing)MOVAX,2000H;MOVAL,BUFFER;

2、4、寄存器间接寻址、寄存器间接寻址(RegisterIndirectAddressing)MOVAX,SI;MOVBL,DI;MOVCH,BX;MOVDX,BP寻址方式的种类寻址方式的种类5、变址寻址(、变址寻址(IndexedAddressing)SI、DI索引源变址寄存器索引源变址寄存器SI目标变址寄存器目标变址寄存器DIEA=SI/DI+位移量位移量MOVAX,SI+6;MOVDL,TABLESI6、基址寻址(、基址寻址(BasedAddressing)BX、BPMOVAL,BX+100;MOVDX,TABLEBP 基址寻址与变址寻址类似,不同之处在于基址寻址与变址寻址类似,不同之处在于

3、:变址寻址中的寄存器是变址寻址中的寄存器是SI、DI基址寻址中的寄存器是基址寻址中的寄存器是BX、BP寻址方式的种类寻址方式的种类7、基址、基址-变址寻址(变址寻址(BasedIndexedAddressing)EA=BX/BP+SI/DI+COUNTMOVAL,COUNTBXSIMOVDX,BP+DI+COUNT下面,进行这几种寻址方式的动画演示下面,进行这几种寻址方式的动画演示立即寻址立即寻址MOVAX,0102HAXAHAL高地址高地址低地址低地址存储器存储器操作码操作码MOVAX,0102H0102B8立即数立即数立即数立即数0102寄存器寻址寄存器寻址MOVAX,AXAHALBXBH

4、BLMOVAX,BXBX1212341234寄存器间接寻址寄存器间接寻址 MOVAX,AXAHAL16921H 操作码操作码 高地址高地址 低地址低地址 2000H BXBX9078078BDS 1492H016920H物理地址物理地址操作数操作数9078DS=1492H变址寻址变址寻址&基址寻址基址寻址MOVAX,存储器存储器高地址高地址16927H16926H7890低地址低地址 8B44操作码操作码AXAHAL2000H SIDS 1492H016926H物理地址物理地址SI+06H操作数操作数9078060006H06基址基址-变址寻址变址寻址MOVAX,BXSI+06H1000H B

5、X1000H SIDS 1492H016926H物理地址物理地址高地址高地址 9078064116927H 操作码操作码 低地址低地址 操作数操作数90788B0006H06 AH ALAX8086/8088CPU的功能框图的功能框图(回顾回顾)AHALBHBLCHCLDHDLSPBPDISI通通用用寄寄存存器器AXBXCXDXALU数据总线(数据总线(16位)位)运算寄存器运算寄存器ALU标志寄存器标志寄存器EU控控制系统制系统执行单元执行单元EUCSDSSSESIP内部暂存器内部暂存器123456数据总线数据总线8088:8位位8086:16位位总线总线控控制逻辑制逻辑地址总线地址总线20

6、位位指令队列指令队列80888086Q总线总线(8位)位)指令指针指令指针段寄存器段寄存器总线接口总线接口单元单元BIU外部外部总线总线寄存器(回顾)寄存器(回顾)AHSIALBHBLCHCLDH DLDIBPSPDSESSSCSIPPSWAX,累加器累加器AccumulatorBX,基数寄存器基数寄存器BaseCX,计数寄存器计数寄存器CountDX,数据寄存器数据寄存器Data源变址寄存器源变址寄存器Source Index目的变址寄存器目的变址寄存器Destination Index基址指针寄存器基址指针寄存器Base Point堆栈指针寄存器堆栈指针寄存器Stack Point数据段寄

7、存器数据段寄存器Data Segment附加段寄存器附加段寄存器Extra Segment堆栈段寄存器堆栈段寄存器Stack Segment代码段寄存器代码段寄存器Code Segment指令指针寄存器指令指针寄存器Instruction Pointer状态标志寄存器状态标志寄存器Processor Status Word数据数据寄存器寄存器变址变址寄存器寄存器指针指针寄存器寄存器通用寄存器通用寄存器段寄存器段寄存器控制寄存器控制寄存器指令系统的分类指令系统的分类类型类型说明说明举例举例数据传送数据传送通用通用/IO目标地址传送目标地址传送/标志传送标志传送MOV、OUTLEA、PUSHF算术

8、运算算术运算整型数据处理整型数据处理ADD、MUL逻辑指令逻辑指令逻辑数据处理逻辑数据处理AND、SHL串处理串处理字符型数据处理字符型数据处理MOVS、REP控制转移控制转移程序流控制处理程序流控制处理JMP、LOOPCALL、INT处理器控制处理器控制系统控制管理系统控制管理CLS、HLT指令中操作数的表示指令中操作数的表示符号符号表示内容表示内容I立即数操作数立即数操作数R通用寄存器通用寄存器操作数操作数8位位AH、AL、BH、BL、CH、CL、DH、DL16位位AX,BX,CX,DX,BP,SP,SI,DISR段寄存器段寄存器CS、DS、SS、ESM或或存储器操作数存储器操作数src源

9、操作数源操作数dst目的操作数目的操作数()()注释时表示寄存器、存储器、端口的内容注释时表示寄存器、存储器、端口的内容oprd1oprd2两操作数两操作数书写指令注意事项书写指令注意事项l不区分字母的大小写不区分字母的大小写下列写法表示同一条指令:下列写法表示同一条指令:MOVAX,1ABDHmovax,1abdhl不添加指令系统没有的指令不添加指令系统没有的指令将将 MOVAL,0写成写成MOVEAL,0JMPLabel写成写成JUMPLabell注意操作数的范围注意操作数的范围对字节操作指令对字节操作指令0FFH0255对字操作指令对字操作指令0FFFFH065535书写指令注意事项书写

10、指令注意事项l对无操作数指令,不添加操作数对无操作数指令,不添加操作数STCALl对单操作数指令,操作数不能是立即数对单操作数指令,操作数不能是立即数IMUL6l对双操作数指令对双操作数指令不能两个同为存储器操作数不能两个同为存储器操作数MOVDI,SI目的操作数不能是立即数目的操作数不能是立即数ADD3,AL两个操作数的类型应相同两个操作数的类型应相同SUBAX,BL若若value定义为字类型存储器变量:定义为字类型存储器变量:MOVCL,value书写指令注意事项书写指令注意事项l内存操作数的属性应明确内存操作数的属性应明确MOVBX,0MOVbyteptrBX,0MOVwordptrBX

11、,0MOVBX,ALMOVBX,AX书写指令注意事项书写指令注意事项lA、B、C、D、E、F开头的十六进制数前面加开头的十六进制数前面加0,与,与H结尾的标识符区别结尾的标识符区别如如寄存器名:寄存器名:AH、BH、CH、DH变量名变量名:abcdH等等例例:movAL,0AHmovAL,AHmovBX,0abcdH上面,上面,0AH是立即数,是立即数,AH是寄存器。是寄存器。数据传送数据传送地址总线地址总线AB存存储储器器I/O接接口口输输入入设设备备I/O接接口口数据总线数据总线DB控制总线控制总线CB输输出出设设备备CPU寄存器,存储器,寄存器,存储器,I/O端口端口数据传送数据传送按传

12、送内容,可分为四类:按传送内容,可分为四类:1.通用数据传送通用数据传送MOVPUSHPOPXCHG2.累加器专用传送累加器专用传送INOUTXLAT3.地址传送地址传送LEALDSLES4.标志传送标志传送PUSHFPOPFLAHFSAHF特点:特点:1.除除POPF、SAHF外,其他传送指令对标志位均无影响外,其他传送指令对标志位均无影响2.唯一允许以唯一允许以段寄存器段寄存器做操作数的指令种类;做操作数的指令种类;且只有且只有MOV、PUSH、POP这三条允许这三条允许通用数据传送通用数据传送(GP transfer)MOVBYTE/WORD数据传送;可以使用各种寻址方式;数据传送;可以

13、使用各种寻址方式;MOVDST,SRC执行:执行:(dst)(src)MOVAX,80A0H;(BX,SI,3000)允许:允许:RR/M,I(直接数)(直接数)R/M;R/MSR(段寄存器)(段寄存器)禁止:禁止:MM;ISR;SRSR举例举例 R/M/SRR通用寄存器通用寄存器/存储器存储器/段寄存器段寄存器通用寄存器通用寄存器MOVAL,BLMOVBX,ALMOVDS,AXR/SRM通用寄存器通用寄存器/段寄存器段寄存器存储器存储器MOVAL,BXMOVDS,BX+SIR/MSR通用寄存器通用寄存器/存储器存储器段寄存器段寄存器MOVBX,CSMOVBX,DSR/MI通用寄存器通用寄存器

14、/存储器存储器立即数立即数MOVAl,9MOVBX,OFFSETbufferMOVBYTEPTRvalue,0MOVWORDPTRBX,1例题例题l例:编程将例:编程将CL寄存器的内容传送到寄存器的内容传送到200:100H单元中单元中MOVAX,200HMOVDS,AX;(DS)=200HMOV100H,CL;(02100H)=(CL)编程编程1:MOVAX,200HMOVDS,AX;(DS)=200HMOVDI,100H;(DI)=100HMOVDI,CL;(02100H)=(CL)编程编程2:MOV200:100H,CL通用数据传送通用数据传送(GP transfer)堆栈操作指令堆栈操

15、作指令PUSH(Pushwordontostack)POP(Popwordoffstack)l什么是堆栈,为什么需要堆栈什么是堆栈,为什么需要堆栈?堆栈是按照堆栈是按照先进后出先进后出原则组织的一段内存区域原则组织的一段内存区域,通常用于存放一些重要数据通常用于存放一些重要数据,如:如:程序的地址、或是需要恢复的数据程序的地址、或是需要恢复的数据。l为方便数据的存放和恢复为方便数据的存放和恢复,设置专门的指针,指向堆栈中要操作的单元设置专门的指针,指向堆栈中要操作的单元。段值由段值由SS给出,偏移地址由给出,偏移地址由SP给出给出SS堆栈段寄存器堆栈段寄存器(stacksegment)SP堆栈

16、指针寄存器堆栈指针寄存器(stackpoint)SS:SP通用数据传送通用数据传送(GP transfer)PUSHSRC(SP)(SP)-2;(SP)+1,(SP)(SRC);POPDST(DST)(SP)+1,(SP);(SP)(SP)+2;SRC/DST可以为可以为R/M/SR(但(但DST不可为不可为CS)SP只能为偶数只能为偶数!l用途用途临时保存数据(临时保存数据(INT断点断点/CALL返回地址返回地址/数据)数据)传递信息(函数传递信息(函数/子程序)子程序)通用数据传送通用数据传送(GP transfer)特点与规则特点与规则l操作操作按字(按字(2字节)进行字节)进行lPU

17、SH指令指令从高地址从高地址低地址增长低地址增长,POP相反相反l操作规则操作规则FILO(First-In-Last-Out)lSP为当前栈顶指针(为当前栈顶指针(EA)使用过程使用过程/关键关键1.堆栈平衡,防止溢出堆栈平衡,防止溢出2.PUSH、POP配对使用配对使用示例示例-PUSH AXl存放存放CPU寄存器或存储器中暂时不使用的数据寄存器或存储器中暂时不使用的数据,使用数据使用数据时将其弹出:时将其弹出:PUSHAX;将将(AX)入栈入栈(AX)(AX)低地址低地址.高地址高地址.11112222(SP)-2(SP)-2(SP)-1(SP)-1(SP)(SP)堆堆栈栈段段PUSH

18、AXPUSH AX前前低地址低地址.22H22H11H11H高地址高地址.11H11H22H22H(SP)(SP)(SP)+1(SP)+1(SP)+2(SP)+2堆堆栈栈段段PUSH AXPUSH AX后后示例示例 PUSH AX若执行前:若执行前:(SS)=2000H(SP)=1002H(SS:SP)=2010H(AX)=1234H10低低高高20地址地址SS:SP2000:1002指令执行前指令执行前则执行则执行PUSHAX后:后:(SS)=2000H(SP)=1000H(SS:SP)=1234H(AX)=1234H123410低低高高20地址地址指令执行后指令执行后不变不变 减减2 2

19、变变不变不变SS:SP2000:1000示例示例 POP BXl使用数据时将其弹出:使用数据时将其弹出:POPBX低地址低地址.22H22H11H11H高地址高地址.33H33H44H44HBXBX(SP)(SP)(SP)+1(SP)+1(SP)+2(SP)+2堆堆栈栈段段POP BXPOP BX前前低地址低地址.22H22H11H11H高地址高地址.11H11H22H22HBXBX(SP)-2(SP)-2(SP)-1(SP)-1(SP)(SP)堆堆栈栈段段POP BXPOP BX后后示例示例 POP BX若执行前:若执行前:(SS)=2000H(SP)=1000H(SS:SP)=1234H(

20、BX)=5678H则执行则执行POPBX后:后:(SS)=2000H(SP)=1002H(SS:SP)=2010H(BX)=1234H不变不变加加2变变变变123410低低高高20地址地址指令执行前指令执行前SS:SP2000:100010低低高高20地址地址SS:SP2000:1002指令执行后指令执行后(BX)=5678H1234(BX)=1234Hq 调用子程序(或过程)或发生中断时要保护断点的地址,调用子程序(或过程)或发生中断时要保护断点的地址,子程序或中断返回时恢复断点。子程序或中断返回时恢复断点。子程序嵌套子程序嵌套断点地址压入和弹出情况断点地址压入和弹出情况程序嵌套调用程序嵌套

21、调用低地址低地址.断点断点2(L)2(L)断点断点2(H)2(H)断点断点1(L)1(L)断点断点1(H)1(H)高地址高地址.(SP)(SP)先先压压入入后后压压入入先先弹弹出出后后弹弹出出堆堆栈栈段段通用数据传送通用数据传送(GP transfer)XCHGdest,src;(dest)(src)交换操作数。交换操作数。可可进行进行字字或或字节字节操作操作,不影响不影响标志位标志位。支持支持RR/M;禁止禁止MM例例:XCHGAL,AHXCHGAX,BXl例例XCHGAX,BX字操作字操作执行前(执行前(AX)=1122H,(BX)=3344H执行后(执行后(AX)=3344H,(BX)=

22、1122H l例例XCHGAH,BL字节操作字节操作执行前(执行前(AX)=1122H,(BX)=3344H执行后(执行后(AX)=4422H,(BX)=3311H通用数据传送通用数据传送(GP transfer)XLATsrc_table字节转换指令(换码指令)字节转换指令(换码指令)该指令不影响标志位该指令不影响标志位格式:格式:XLATstr_table;实现:实现:(AL)(BX)+(AL)运行前运行前BX须赋值,例须赋值,例:MOVBX,OFFSETsrc_table;(BX)表首址表首址MOVAX,SEGsrc_table;(AL)序号序号XLATHex_table;查表转换查表转

23、换(详见书详见书P69例例2.4)I/O端口端口(Port)传送指令传送指令输入输出指令共两种:输入输出指令共两种:IN(Inputbyteorword)OUT(Outputbyteorword)输入指令用于输入指令用于CPU从外设端口接受数据,从外设端口接受数据,输出指令用于输出指令用于CPU向外设端口发送数据。向外设端口发送数据。l无论接受还是发送数据,必须通过累加器无论接受还是发送数据,必须通过累加器AX(字字)或或AL(字节字节)使用使用AX,则输入,则输入(输出输出)字字;使用;使用AL,则输入,则输入(输出输出)字节字节。l输入、输出指令不影响标志位。输入、输出指令不影响标志位。l

24、当端口地址为当端口地址为16位二进制数时,外部设备最多有位二进制数时,外部设备最多有65536个个I/O端口,由端口,由A0A15译码形成。译码形成。I/O端口端口(Port)传送指令传送指令l每个外设要占几个端口:数据口,状态口和控制口每个外设要占几个端口:数据口,状态口和控制口;信息交换要通过端口。信息交换要通过端口。端口是端口是CPU和外设的桥梁。和外设的桥梁。CPUIO接口接口I/O设备设备译译码码数据端口数据端口状态端口状态端口控制端口控制端口总线总线I/O端口端口(Port)传送指令传送指令访问方式访问方式l直接:直接:端口号中前端口号中前256个端口(个端口(0FFH),可以直接

25、写在指令中,端),可以直接写在指令中,端口号代替指令中的口号代替指令中的PORTINAL/AX,portNo;8位立即数位立即数portNo:0255OUTportNo,AL/AX;l间接:间接:当端口号当端口号256时时,必须先把端口号放到必须先把端口号放到DX寄存器中。寄存器中。INAL/AX,DX;DX:064K(0FFFFH)OUT DX,AL/AX;I/O端口端口(Port)传送指令传送指令例例1:实现将(:实现将(AL)(05H)OUT05H,AL;(;(05H)(AL)例例2:实现:实现(29H)(28H)(DATA_WORD)INAX,28HMOVDATA_WORD,AX例例3

26、:PC串口读写示例串口读写示例MOVDX,3F8HINAL,DX;PC读读COM1(接收)(接收)OUTDX,AL;发送发送目标地址传送指令目标地址传送指令 LEALEAreg16,mem16取有效地址,近地址指针取有效地址,近地址指针(段内段内)reg16例:例:LEADX,BETABXSI当当BX=0400H,SI=003CH,BETA=0F62H执行后,执行后,DX=139EH比较比较:LEAAX,BUFFERMOVAX,BUFFERMOVAX,OFFSETBUFFER目标地址传送指令目标地址传送指令 LDS、LESLDSreg16,mem32mem32存放存放FARPointer数据数

27、据(4bytes)DS:reg16(mem32)reg16,(mem32+2)DS例:例:LDSSI,0010HDS:0010HSI,DS:0012HDSLESreg16,mem32 mem32存放存放FARPointer数据数据(4bytes)ES:reg16标志传送指令标志传送指令 Flag Register TransferlLAHF(LoadAHfromflags)FLAGS寄存器低寄存器低8位位(SFZFXXAFXXPFXXCF)AHlSAHF(StoreAHtoFlags)AHFLAGS寄存器低寄存器低8位位(SFZFXXAFXXPFXXCF)lPUSHF;(SP)(SP)-2;(SP)+1,(SP)(FLAGS)lPOPF;(FLAGS)(SP)+1,(SP););(SP)(SP)+2;例:例:PUSHAXPUSHCXPUSHFCALLTRANSPOPFPOPCXPOPAX

展开阅读全文
温馨提示:
1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
2: 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
3.本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
关于我们 - 网站声明 - 网站地图 - 资源地图 - 友情链接 - 网站客服 - 联系我们

copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!