《微机原理与接口技术》第三章PPT(第二部分)_第1页
《微机原理与接口技术》第三章PPT(第二部分)_第2页
《微机原理与接口技术》第三章PPT(第二部分)_第3页
《微机原理与接口技术》第三章PPT(第二部分)_第4页
《微机原理与接口技术》第三章PPT(第二部分)_第5页
已阅读5页,还剩82页未读 继续免费阅读

下载本文档

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

文档简介

1、1,8086指令系统(2),2,3,逻辑运算和移位类,逻辑运算移位运算,非循环移位和循环移位,3,1,逻辑运算,“与”或“非”异或,以及四个逻辑运算:4,逻辑运算。逻辑运算指令对操作数的要求与MOV指令基本相同。非运算指令要求操作数不能是立即数;除了“非”运算指令,其它指令的执行将使标志位OF=CF=0,5,“和”指令:格式:与运算1,运算2:两个操作数是“和”,结果被发送到目标地址。“与”指令的应用根据位相位和B1、SI实现两个操作数的运算,使得目标操作数的一些位不变,并且一些位被清零,并且A1、0FH使得CF和OF被清零,并且AX、AX、7,“与”指令的应用示例从具有地址3f8h的端口读取

2、一个字节数,并且如果该数目的位1是1,则可以从3F8H读取该字节数。写入相应的程序段。8,“and”指令应用示例,start,取要输出的数字的偏移地址,读入状态字,测试位1的位状态,位1=1?取输入端口地址,取输出端口地址,输出一个字、N、Y、9,以及指令应用示例,LEA SI,数据MOV DX,3F8H WATT:IN AL,DX和AL,02h jzwattZF=1传输MOV DX,38FH MOV AX,SI输出DX,AX,10,或运算指令,格式:或运算1,运算2:两个操作数为或,结果发送到目标地址,11。“或”指令的应用实现了两个操作数的“或”运算,并使一些位保持不变。0FH使OF=CF

3、=0或AX,AX,12,或指令的应用实例,或A1,A1,JPE GOON或A1,80h goon:pf=1转移,13,应用or指令,把二进制数9变成字符9,如何实现呢?14,“非”运算指令,格式:非OPRD运算:操作数被位取反并返回原始地址注意:指令中的操作数不能是立即的。指令的执行对标志位没有影响。示例:非字节PTRBX,15,“异或”运算指令,格式:异或运算1,运算2:两个操作数进行异或运算,发送结果到目标地址的示例:异或运算1,80H异或运算1,2,两个操作数不同,结果,16,“测试”指令,格式:测试运算1,运算2:执行“与”运算,但运算结果不发送回目标地址。应用:它通常用于测试某些位的

4、状态,例如17:从地址为3F8H的端口读取一个字节数。当数字的位1、位3和位5同时为1时,数据可以作为第一个地址的字从38FH端口输出,否则不能进行数据传输。写下相应的程序段。18,源代码:LEA SI,数据MOV DX,3F8H瓦特:输入AL,DX MOV DX,38FH MOV AX,SI输出DX,AX,和AL,2AH化学机械抛光AL,2AH JNZ瓦特,测试AL,02h JZ瓦特;ZF=1转移测试A1,08H JZ瓦特测试A1,20H JZ瓦特,和A1,2AH异或A1,2AH JNZ瓦特,19,2。移位指令、非循环移位指令、循环移位指令,注意:移位一位时,由指令直接给出;移动两位或更多位

5、,则移位次数由CL指定。,20,无循环移位指令,逻辑左移位,算术左移位,逻辑右移位,21,算术左移位和逻辑左移位,算术左移位指令:SAL OPRD,1 SAL OPRD,cl逻辑左移位指令:SHL OPRD,1 SHL OPRD,CL,有符号数,无符号数,如果移动一位后CF不等于最高,则否则,OF=0,22,逻辑右移位,格式:SHR OPRD,I SHR OPRD,CL,0,CF,无符号数右移位,移动一位后,如果下一个最高位否则,OF=0,23,逻辑向右移动:MOV AL,68h mofcl,2 SHR AL,cl,0,cf,011010,AL,0,0,0,0011000,AL,cf,0,0,

6、24、算术右移,格式:OPRD,OPRD,CL,带符号数的右移、25,应用无环移位指令,左移可实现乘法,右移可实现除法,课本p130例,26,循环移位指令,无进位循环移位RCL左移RCR右移。指令格式和操作数要求与非循环移位指令相同。27、无进位的循环移位、cf、28、有进位的循环移位。高阶部分和低阶部分的交换;它与非循环移位指令一起构成字长为32位或更长的移位。30,程序示例,movsi,1000h movdi,3000h movcx,4bbb: moval,simovbl,al and al,0fhor al,30h movdi,al Inc dimov al,bl,push CX mov

7、cl,4shr al,cl or al,30h movdi,al Inc di incsi pop CX dec CX jnz BBB HLT,程序函数?31,程序功能,将存储在1000时的四个压缩BCD码转换成ASCII码,并存储在3000时开始的单元中。、12h、34h、56h、78h、1000h、3000h、32、4。字符串操作指令,针对数据块或字符串操作;可以实现从存储器到存储器的数据传输;要操作的数据字符串称为源字符串,目标地址称为目标字符串。33,字符串操作指令的特征,源字符串一般存储在数据段中,而偏移地址由SI指定。允许段重置;目标字符串必须在附加段中,偏移地址由DI指定;该指令

8、自动修改地址指针,修改方向由DF决定。数据块长度值由CX指定,它可以添加自动重复前缀来自动修改CX内容。添加地址方向;减去地址方向;34,重复前缀,无条件重复REP条件重复REPE等于重复REPZ是零重复REPNE不等于重复REPZ不是零重复,CX0ZF=1,CX0ZF=0,CX0重复,35,字符串操作指令流,取源字符串地址,取目标字符串地址,设置字符串长度,传输一个字节或字,N,Y,36,字符串操作指令,字符串传输MOVS字符串比较CMPS字符串扫描SCAS字符串加载LODS字符串存储STOS,37,字符串传输指令,格式:MOVS OPRD1, OPRD2 MOVSB MOVSW字符串传输指

9、令通常使用无条件重复前缀,38,字符串传输指令,39,串行传输指令示例,200字节数据通过串行传输指令传输:LEA SI,MEM1 LEA DI,MEM2 MOV CX,200 CLD REP MOVSB HLT,40,串行比较指令,格式:cmpsopd1,OPRD2 CMPSB CMPSW串行比较指令通常使用有条件重复前缀,指令的执行不会改变操作数,但只会影响标志位。 前缀的操作对标志位没有影响。41.字符串比较指令的示例,测试200字节的数据是否正确传输:LEA SI、MEM1 LEA DI、MEM2 MOV CX、200 CLD REPE CMPSB测试CX、00FFH、JZ停止DEC

10、SI MOV AL、SI MOV BX、simstop: HLT。42,串行扫描指令,格式:SCAS OPRD SCASB SCASW执行类似于CMPS指令的操作,除了源操作数在这里是AX或AL,目标操作数是43。串行扫描指令的应用通常用于在指定的存储区域中查找关键字。,44,字符串加载指令,格式:LODS OPRD LODSB LODSW操作:for byte: AL for word: AX,source operand,ds3360si,ds3360si,45,字符串加载指令,用于将内存中某个区域的数据字符串依次加载到累加器中,以供显示或输出到接口。LODS指令通常不以重复为前缀。46,

11、seriAL storage指令,格式:STOS OPRD STOSB STOSW操作:for byte: al for word: AX,target operand,es:DF,0 es3360di,47,serial storage指令示例内存中的某个区域被清除,设计思想:该区域的第一个地址被发送到es: di,字符串的长度被发送到CX。执行串行发送和存储指令、p139、48、5。程序控制指令,传输指令,循环控制过程调用中断控制,49,1。转移指令,无条件转移指令,无条件转移到目标地址,新指令,有条件转移指令,在一定条件下转移到目标地址,程序转移可以通过修改指令的偏移地址或段地址和偏移地

12、址来实现。50.无条件转移指令,格式:JMPOPRD,目标地址,与JMP在同一代码段,但与JMP不在同一代码段。原则上,传输可以在整个存储空间中实现。51岁。在无条件段中传输,传输的目标地址在当前代码段中,段地址保持不变。也就是说,目的地址是16位偏移地址。目标地址在指令中直接给出,由指令中的寄存器或存储器操作数指示,段内直接传输、段内间接传输、52、段内直接传输,段内直接传输的目标地址由指令直接给出:JMP标签,近地址标签,53,段内直接传输图、JMP标签、下一条要执行的指令的偏移地址=当前IP偏移,54,段内间接分支,段内间接分支的目标地址存储在16位寄存器或两个单元中示例:JMP BX如

13、果BX=1200H,分支的目标地址=1200H、JMP、代码段,1200 JMP WORD PTRBX设置如下:bx=1200h、JMP、代码段、数据段、bx=1200、xxxh、xxxh、IP、指令代码、56、无条件段间传输。目的地址是32位,包括段地址和偏移地址。指令直接给出目标地址,由指令中的32位内存操作数指示,段间直接传输、段间间接传输、57、段间直接传输,段内直接传输的目标地址由指令直接给出:JMP FAR标签、FAR地址标签、58、段间直接传输图、JMP、标签、标签、标签与JMP之间的位移、代码段2、xxxh、xxxh、xxxh、IP、cs、59、段间间接传输、间接的目标地址例如

14、:JMP德沃德专利技术有限公司、XH、JMP、指令代码、代码段1、代码段2、数据段60、条件分支指令。在某些条件下,程序转移到目标地址并继续执行条件分支指令,这些指令都是段内的短分支,也就是说,转移范围是:-128-127,P142,61,63,转移指令示例(流程图),清除存储元素数量的单元,设置字符串长度,取一个字节数,将正数加1,将零元素加1,然后为负数?它是零吗?负数加1、n、y、n、y、p144、64、2。循环控制指令,循环范围:循环在-128到127范围内,以当前IP为中心。周期数由CX寄存器指定。循环指令:LOOP *LOOPZ *LOOPNZ,无条件循环指令,条件循环指令,65,

15、无条件循环指令,格式:LOOP LABEL循环条件:CX 0操作:DEC CX JNZ符号地址,66,条件循环指令,格式:loopz label looplabel循环条件:CX 0 ZF=1,格式:LOOPZ LABEL LOOPE LABEL循环条件:cx0zf=0,67,3。过程调用和返回,用于调用子过程;子流程由程序员预先设计,并加载到内存中。子进程完成后,应该返回到原来的调用位置,调用程序、断点、入口地址、入口地址、断点地址、子程序68,调用指令的执行进程来保护断点;将调用指令的下一条指令的地址(断点)按入堆栈,得到子进程的入口地址;子进程的第一条指令的偏移地址执行子进程,包括相应参数的保存和恢复;恢复断点并返回到原始程序。从堆栈弹出断点偏移地址,69,过程调用,段内调用,段间调用,段间间接调用,段间间接调用,70,段内调用,被调用程序和调用程序在调用同一个

温馨提示

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

最新文档

评论

0/150

提交评论