微机课件_03第三章:指令系统.ppt_第1页
微机课件_03第三章:指令系统.ppt_第2页
微机课件_03第三章:指令系统.ppt_第3页
微机课件_03第三章:指令系统.ppt_第4页
微机课件_03第三章:指令系统.ppt_第5页
已阅读5页,还剩91页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

第三章8086命令系统、南理工紫金学院帅辉明、8086操作数地址方式8086命令形式、功能、对命令执行后的标志寄存器的影响,在本章中,命令系统命令形式:操作码操作数操作码:表示命令完成的操作,辅助标记形式MOV、ADD、SUB等操作数:表示命令的操作对象常数寄存器存储器、3.3 ,计算机可执行的所有指令的集合。 取决于命令代码中提供的操作数地址的数量,命令可以是无操作数的命令单操作数命令:双操作数命令示例: HLTPUSHAXMOVAX,BX,命令的通用格式,操作数地址方法的概念:用于查找操作数或操作数地址的方法:数据源源操作数的操作数、3.28086CPU的地址方式、指令形式:指令源操作数、目标操作数指令源操作数指令的操作数、 即时地址寄存器地址直接地址索引索引索引索引地址索引相对地址、操作数的地址方式、存储器地址、即时操作数、寄存器操作数、(存储器MOVAX,1234H; 与AX1234H相应的命令代码: B83412H不需要访问操作数,并且执行速度快。1 .即时寻址、B83412H、12H和34H以及命令所需的操作数位于CPU寄存器中。 有8位或16位通用寄存器和段寄存器。 MOVAX、SIMOVAH、CLMOVAX、DS不需要访问操作数,执行速度快,2 .寄存器地址、操作数存储在存储单元的某个位置,在指令中该存储单元的8/16位偏移Disp操作数默认存储在DS段中Disp示例1:DS=2000H,ES=1500HMOVAX 1000HMOVAX,ES1000H,3 .直接地址,9,EA=Disp操作数物理地址=(缺省段) *10hhd,物理地址=2000H*10H 1000H, 物理地址=1500H*10H 1000H,南京理工大学紫金学院陈琳,或者,如果操作数没有在DS数据段中,则在DS以外的段中,在操作数之前附加段超越修饰符,以此来命名段寄存器,例如MOVAX, ES1000H、段超越、11、段超越、操作数需要存储在存储单元的某个位置,偏移量存储在寄存器中(BX/BP/SI/DI)BX、SI, DI默认段为DS,BP默认段为SS格式:命令操作数1、寄存器、4 .寄存器间地址、12 EA=BX/BP/SI/DI操作数的物理地址=(默认段) *10H寄存器中的偏移,例如=1100H、(ES)=3000H、(BX)=0010H、(BP)=1000H,求出下述命令的源操作数的物理地址。MOVAX,BXMOVAX,BPMOVAX,ES:BP,13,物理地址=(DS)*16 (BX)=21010H,物理地址=(SS)*16 (BP)=12000H,物理地址=(ES)*16 (BP)=31000H, 操作数存储在存储单元某个位置,该EA通过对基本地址寄存器BX或BP添加了命令的Disp,以默认段的同一寄存器地址形式:命令操作数1、基本地址寄存器Disp命令操作数1、Disp基本地址寄存器例: mos 或者MOVAX、100HBX、5 .基本地址、14 EA=BX/BP Disp操作数物理地址=(默认段) *10H寄存器Disp、操作数存储在存储单元某个位置,其EA存储在索引寄存器SI/在DI和指令给出的Disp中,默认段为DS格式:指令操作数1、索引寄存器Disp指令操作数1、Disp索引寄存器例: MOVAX SI 100H或MOVAX,100HDI、6 .索引地址EA=SI/DI Disp操作数物理地址=(默认段) *10H寄存器Disp,操作数存储在存储单元所在位置,该EA是索引寄存器SI/DI和索引地址寄存器BX/由BP默认段和寄存器地址格式:命令操作数1 基地址寄存器索引寄存器示例: MOVAX、BX SI或MOVAX、BP DI、7 .基地址索引地址、16、 EA=BP/BX SI/DI操作数物理地址=(默认段) *10H BP/BX SI/DI,操作数存储在存储单元某个位置,该EA存储在索引寄存器SI/DI中,基地址寄存器BX/由BP指示的偏移Disp默认段和寄存器地址格式:指令操作数1、索引寄存器Disp例: MOVAX、SI 100H或MOVAX, 100HDI、8 .基地址索引相对地址、17 EA=BP/BX SI/DI Disp操作数物理地址=(缺省段) *10H BP/BX SI/DI Disp、位移量Disp命令中的一个8/16位基地址基寄存器BX或基地址指针BP的内容索引源索引寄存器SI或目标索引寄存器DI的内容,9 .总结: EA的结构,10 .各种地址方式的对比,1 .通用数据传送命令MOVDST, SRC功能:将数据从SRC复制到DST的3.4.1数据传输指令,源目标操作数不是IPF,目标操作数不是即时CS。 在段寄存器之间无法通过MOV指令传输数据。 即时数不能通过MOV指令发送到段寄存器。 DST和SRC不能同时是内存操作数。 传输的源操作数和目标操作数必须同时为字符或字节。 立即计数存储单元时,请指出该存储单元是字单元还是字节单元。 注意,MOVBX SI、255可以是MOVBX SI、255或MOVBX SI、255或MOVBX SI、字节ptr 255或MOVBX SI、WORDPTR255,例如1 :错误命令255可以是8位(1字节)或16位(2字节) 不清楚所指的存储单元是字节还是字符单元,判断下一个命令是否正确,如果不正确,请说明理由。 (1)MOVDS、CS(2)MOVIP、BX; (3)MOVCS,AX(4)MOVF,0000H(5)MOVAX,BX(6)MOVDX,IP(7)MOVBX,SI DI(8)MOV1000,30(9)MOVES,1000H(10)MOVAX,BL, 例2 :分析即时数1234H区段寄存器DS :即时数区段寄存器即时数通用寄存器区段寄存器MOVAX,1234HMOVDS,AX偏移量3000H的存储器单元中的1字节,偏移量4000H的单元分析:存储器单元存储单元3000HMOV4000H, AL例3 :将寄存器BL内容发送到寄存器DL的分析:通用寄存器通用寄存器MOVDL,BL交换分析AX的内容和CX的内容:内容交换是第三方MOVBX、AXMOVAX、CXMOVCX、BX、例如4:XCHGDST、SRC功能:交换SRC和DST, 2 .交换命令1 .将CX的内容与DI的内容进行交换将xchgx、DI2.cx的内容与具有数据段的字元格的内容进行交换,将该字元格的偏移地址与DI表示xchgx的DI、例如3.MOVAX、1199HXCHGAH、ALMOVWVAR、5566 WVARXCHGAL,BYTEPTRWVAR 1输入堆栈: PUSHSRC执行的操作:输出堆栈: POPDST执行的操作: 8086中,输入堆栈、输出堆栈都是以字为单位的。3 .堆栈操作命令、16位通用寄存器、段寄存器、存储单元、16位通用寄存器、段寄存器(CS除外)、存储单元、(SP)-1SP、SRC高位字节spdst低位字节、(SP) 1SP、(SP)-1SP dst高位字节、(SP) 1SP示例: PUSHAX、POPBX、SP、AH、AL、SP、高、低、03H、62H、SP、SP、MOV、XCHG、PUSH、POP不改变标志寄存器的值的标志位传送命令改变标志寄存器的值4 .标志位传送指令是取标志寄存器指令/保存标志寄存器指令LAHFSAHF标志的堆栈指令/标志输出指令PUSHFPOPF,标志寄存器操作指令,例:清除标志寄存器f。 MOVAX、0PUSHAXPOPF、CLC; 复位进位标志: CF0STC; 位置进位标志: CF1CMC; 求逆进标志: CFCFCLD; 复位方向标志: DF0,串行操作后地址增大STD; 设置方向标志: DF1,串行操作后地址减少CLI; 复位中断标志: IF0,禁止响应并屏蔽中断STI的位置中断标志: IF1,可响应屏蔽中断,标志位操作命令,1 .加载有效地址命令(获取SRC的EA)LEADST,SRCSRC存储器操作数。 可以指定变量、标签或地址表达式。 DST16位通用寄存器伪运算符OFFSET可以在组件中获得变量(或标签)的偏移地址。 5 .地址转送命令、MOVBX、400HMOVSI、3CHLEABX、BX SI 0F62H、例1 :BX=? 139EH,变量WVAR的偏移为0004H,值为4142HMOVAX,WVARLEASI,WVARMOVCX,SIMOVDI,offsetvarvdx,DI,例2 :AX=? 4142H,SI=? 0004H,CX=? 4142H,DI=? 0004H,DX=? 4142H、3个指令发挥相同的作用,完成存储器(AX/AL )和I/O端口之间的数据传输。 输入: INAX/AL、端口号功能:端口数据AX/AL输出: OUT端口号、AX/AL功能: AX/AL端口、6 .输入输出命令、直接地址为端口地址255(00FFH )时, 对于能够以立即数字形式出现在输入/输出命令中的端口地址255,例如,端口地址、端口地址等由DX表示的端口地址,其中必须首先将端口地址存储在DX中的输入/输出命令具有100个端口的字节数据id 100例2 :在地址为100H的端口写入字数据MOVDX,100HOUTDX,AX,例如,或: MOVDX,100INAL,DX运算命令的大部分影响标志寄存器的1 .加法/减法命令的命令格式: ADD/SUBDST,SRC功能: DRC功能3.4.2算术运算命令,加法/减法命令,例如1:(DL)=2EH,(AL)=2CHADDAL,DL结果: (AL)=5AHAF=,CF=,OF=,PF=,ZF=,SF=例如2:SUBAX,AX和MOVAX,0的不同SUB命令影响状态标志位,而MOV命令影响标志位例如:指令格式: ADC/SBBDST,SRC功能: (DST)(SRC)(CF)DST,根据运算结果设定标志寄存器的6个状态标志位。 用途:处理多字节数据的加减运算,一般与常规加减运算指令结合使用。 2 .进位加法/进位减法指令,INC/DECDST功能: (DST)1DST,此操作不影响CF,而影响其他状态标志位。 通常用于调整计数器和地址指针。 INCSIDECBYTEPTRBX、3 .正1/负1指令、8/16位通用寄存器或存储单元; 需要指定存储单元的类型,根据NEGDST功能: DST0-(DST )运算结果,设定标志寄存器的6个状态位。 运算结果:如果DST为正数(负数),则绝对值为相等的负数(正数)。 示例:假设已知(BL)=10011010,执行命令NEGBL,4 .互补命令; (bl )=01100110,1001010是负数,根据结果01100110,CMPDST,SRC功能: (DST)-(SRC )设置标志,并且不改变DST的值。 通常,在CMP之后连接JG、JZ、JC等条件转移命令。 5 .比较命令可以是8/16位通用寄存器、存储器单元、即时数、8/16位通用寄存器或存储器单元,其中,MULSRC无符号乘法器的IMULSRC共享符号乘法器影响CF和off,并且其他状态标志位的内容未被确定。6 .乘法指令,例如,计算两个无符号数的乘积: 64H0A5HMOVAL,64HMOVBL,0A5HMULBL例如,2:MULBX,例如,存储单元类型的MULBYTE/WORDPTRBX,x,DIVSRC无符号除法IDIVSRC 另外,7 .除法指令、1 .逻辑运算指令、3.4.3逻辑运算和移位指令可以是8/16位通用寄存器、存储器单元、即时数、8/16位通用寄存器、存储器单元,例如1 .测试al的最高位是否为1,如果为1,则跳转到标签L1,指令TESTAL 10000000BJNZL1例2.AL的0,屏蔽第1位andal 1111100 b例3 .位置al的第5位ORAL,00100000B例4.al的第0,1位为反XORAL,00000011B,例:算术移位SALDST,COUNTSARDST 对于COUNTs、count、2 .移位命令或COUNT1,命令不能直接写入,且必须表示为CL寄存器值,DST可为8/16位通用寄存器或存储器单元; (DST )将算术向左移动COUNT位(DST )向右移动COUNT位(DST )将逻辑向左移动COUNT位(DST )将逻辑向右移动COUNT位、53,根据移动的结果设置状态标志位(AF除外)。 多位移位时OF无效,移位1位时对OF的影响:算术/逻辑左移位:移位后,如果CF和DST的最高位不相等,则OF=1; 否则OF=0。 逻辑右移:移位后,如果DST的最高位比特与下一高位比特不相等,则OF=1; 否则OF=0。 移位指令对标志位的影响,算术/逻辑

温馨提示

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

评论

0/150

提交评论