版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、8086指令系统(2)1精选ppt三、逻辑运算和移位类逻辑运算移位操作非循环移位循环移位2精选ppt逻辑运算和移位指令3精选ppt指令类型逻辑运算与,或,非,异或移位操作非循环移位,循环移位4精选ppt 一、逻辑运算逻辑运算指令对操作数的要求大多与MOV指令相同。“非”运算指令要求操作数不能是立即数;除“非”运算指令外,其余指令的执行都会使标志位OF=CF=05精选ppt1.“与”指令:格式: AND OPRD1,OPRD2操作: 两操作数相“与”,结果送目标地址。6精选ppt“与”指令的应用实现两操作数按位相与的运算AND BL,SI使目标操作数的某些位不变,某些位清零AND AL,0FH在
2、操作数不变的情况下使CF和OF清零AND AX,AX7精选ppt“与”指令应用例从地址为3F8H的端口中读入一个字节数,如果该数的bit1位为1,则可从38FH端口将DATA为首地址的一个字输出,否则就不能进行数据传送。 编写相应的程序段。8精选ppt“与”指令应用例开 始取待输出数的偏移地址读入状态字测试bit1位状态Bit1=1?取输入口地址取输出口地址 输出一个字NY9精选ppt“与”指令应用例 LEA SI,DATA MOV DX,3F8HWATT:IN AL,DX AND AL,02H JZ WATT ;ZF=1转移 MOV DX,38FH MOV AX,SI OUT DX,AX10
3、精选ppt2.“或”运算指令格式: OR OPRD1,OPRD2操作: 两操作数相“或”,结果送目标地址11精选ppt“或”指令的应用实现两操作数相“或”的运算OR AX,DI使某些位不变,某些位置“1”OR CL,0FH在不改变操作数的情况下使OF=CF=0OR AX,AX12精选ppt“或”指令的应用例 为了保证数据通信的可靠性,往往需要对传送的ASCII码数据进行校验。校验的方法之一就是使用奇偶校验,偶校验是使用传送的ASCII码中1的个数为偶数,奇校验则使1的个数为奇数。奇偶校验位放在ASCII码的最高位上。13精选ppt“或”指令的应用例 OR AL,AL JPE GOON OR A
4、L,80H GOON:.PF=1转移14精选ppt“或”指令的应用将一个二进制数9变为字符9如何实现?15精选ppt3.“非”运算指令格式:NOT OPRD操作:操作数按位取反再送回原地址注:指令中的操作数不能是立即数指令的执行对标志位无影响例:NOT BYTE PTRBX16精选ppt4.“异或”运算指令格式: XOR OPRD1,OPRD2操作:两操作数相“异或”,结果送目标地址例: XOR BL,80H XOR AX,AX两操作数自身相异或,结果为零17精选ppt5.“测试”指令格式: TEST OPRD1,OPRD2操作: 执行“与”运算,但运算的结果不送回目标地址。应用:常用于测试某
5、些位的状态18精选ppt例:从地址为3F8H的端口中读入一个字节数,当该数的bit1, bit3, bit5位同时为1时,可从38FH端口将DATA为首地址的一个字输出,否则就不能进行数据传送。 编写相应的程序段。19精选ppt源程序代码: LEA SI,DATA MOV DX,3F8HWATT:IN AL,DX MOV DX,38FH MOV AX,SI OUT DX,AXAND AL,2AHCMP AL,2AHJNZ WATTTEST AL,02HJZ WATT ;ZF=1转移TEST AL,08HJZ WATTTEST AL,20HJZ WATTAND AL,2AHXOR AL,2AHJ
6、NZ WATT20精选ppt二、移位指令 非循环移位指令 循环移位指令注: 移动一位时由指令直接给出; 移动两位及以上,则移位次数由CL指定。21精选ppt1. 非循环移位指令逻辑左移算术左移逻辑右移算术右移22精选ppt算术左移和逻辑左移算术左移指令: SAL OPRD,1 SAL OPRD,CL逻辑左移指令: SHL OPRD,1 SHL OPRD,CL有符号数无符号数移动一位后,若CF与最高不相等,则OF=1;否则OF=023精选ppt逻辑右移格式: SHR OPRD,I SHR OPRD,CL0CF无符号数的右移移动一位后,若次高位与最高位不相等,则OF=1;否则OF=024精选ppt
7、逻辑右移例:MOV AL,68HMOV CL,2SHR AL,CL0CF0 1 1 0 1 0 AL0 0 0 0 0 1 1 0 1 0 0ALCF0 00 0 0 1 1 0 1 0 ALCF0 0移动1次移动2次25精选ppt算术右移格式: SAR OPRD,I SAR OPRD,CL有符号数的右移CF26精选ppt非循环移位指令的应用左移可实现乘法运算右移可实现除法运算 27精选ppt2. 循环移位指令不带进位位的循环移位带进位位的循环移位左移 ROL右移 ROR左移 RCL右移 RCR指令格式、对操作数的要求与非循环移位指令相同28精选ppt不带进位位的循环移位CFCF29精选ppt
8、带进位位的循环移位CFCF30精选ppt循环移位指令的应用用于对某些位状态的测试;高位部分和低位部分的交换;与非循环移位指令一起组成32位或更长字长数的移位。31精选ppt程序例 MOV SI,1000H MOV DI,3000H MOV CX,4BBB:MOV AL,SI MOV BL,AL AND AL,0FH OR AL,30H MOV DI,AL INC DI MOV AL,BLPUSH CXMOV CL,4SHR AL,CLOR AL,30HMOV DI,ALINC DIINC SIPOP CXDEC CXJNZ BBBHLT程序功能?32精选ppt程序功能将1000H开始存放的四个
9、压缩BCD码转换为ASCII码存放在3000H开始的单元中去。12H34H56H78H1000H3000H33精选ppt例:计算2658+3619=? 结果存放在SUM单元说明:被加数和加数的每一位都以ASCII码形式存放在内存中,低位在前,高位在后。36H32H39H31HSTRING1STRING238H35H36H33H数据段SUM.34精选ppt代码1 LEA SI,STRING1 ;取偏移地址 LEA DI,STRING2 LEA BX,SUM MOV CH,4 ;设循环次数 CLC ;使CF清零A:AND BYTE PTRSI,0FH ;将ASCII转换为二进制数 AND BYTE
10、 PTRDI,0FH MOV AL,SI ;两字节数求和 ADC AL,DI35精选ppt代码1(续)MOV DL,AL AND AL,0FHOR AL,30HMOV BX,ALINC BXMOV AL,DLMOV CL,4SHR AL,CLOR AL,30HMOV BX,ALINC SIINC DIINC BXDEC CH JNZ AHLT36精选ppt代码2 LEA SI,STRING1 LEA DI,STRING2 LEA BX,SUM MOV CX,4 CLCNEXT:MOV AL,SI ADC AL,DI AAA MOV BX,ALINC SIINC DIINC BXDEC CXJN
11、Z NEXTHLT37精选ppt串操作指令38精选ppt串操作指令说明针对数据块或字符串的操作;可实现存储器到存储器的数据传送;待操作的数据串称为源串,目标地址称为目标串。39精选ppt串操作指令的特点源串一般存放在数据段,偏移地址由SI指定。允许段重设;目标串必须在附加段,偏移地址由DI指定;指令自动修改地址指针,修改方向由DF决定。 DF=0 DF=1数据块长度值由CX指定可增加自动重复前缀以实现自动修改CX内容。增地址方向;减地址方向;40精选ppt重复前缀无条件重复REP条件重复REPE 相等重复REPZ 为零重复REPNE 不相等重复REPNZ 不为零重复CX0 ZF=1CX0 ZF
12、=0CX0 重复41精选ppt串操作指令流程取源串地址取目标串地址设串长度传送一个字节或字修改地址指针修改串长度值传送完否?NY设操作方向42精选ppt串操作指令串传送 MOVS串比较 CMPS串扫描 SCAS串装入 LODS串送存 STOS43精选ppt1. 串传送指令格式: MOVS OPRD1,OPRD2 MOVSB MOVSW串传送指令常与无条件重复前缀连用44精选ppt串传送指令对比用MOV指令和MOVS指令实现将200个字节数据从内存的一个区域送到另一个区域的程序段。45精选ppt串传送指令例用串传送指令实现200个字节数据的传送: LEA SI,MEM1 LEA DI,MEM2
13、MOV CX,200 CLD REP MOVSB HLT46精选ppt2. 串比较指令格式: CMPS OPRD1,OPRD2 CMPSB CMPSW串比较指令常与条件重复前缀连用,指令的执 行不改变操作数,仅影响标志位。前缀的操作对标志位不影响47精选ppt串比较指令例测试200个字节数据是否传送正确:LEA SI,MEM1LEA DI,MEM2MOV CX,200CLD REPE CMPSB TEST CX,00FFH JZ STOP DEC SI MOV AL,SI MOV BX,SISTOP:HLT 48精选ppt3. 串扫描指令格式: SCAS OPRD SCASB SCASW执行与
14、CMPS指令相似的操作,只是这里的源 操作数是AX或AL目 标操作数49精选ppt串扫描指令的应用常用于在指定存储区域中寻找某个关键字。50精选ppt串装入指令格式: LODS OPRD LODSB LODSW操作:对字节: AL对 字: AX源操作数DS:SIDS:SI51精选ppt4. 串装入指令用于将内存某个区域的数据串依次装入累加器,以便显示或输出到接口。LODS指令一般不加重复前缀。52精选ppt5. 串存储指令格式: STOS OPRD STOSB STOSW操作:对字节: AL对 字: AX目 标操作数ES:DIES:DI53精选ppt串存储指令例 内存某个区域清零设计思想: 区
15、域首地址送ES:DI串长度送CX置方向标志DF0送累加器AL执行串送存指令p13254精选ppt程序控制指令转移指令循环控制过程调用中断控制55精选ppt一、转移指令无条件转移指令 无条件转移到目标地址,执行新的指令有条件转移指令 在具备一定条件的情况下转移到目标地址通过修改指令的偏移地址或段地址及偏移地址实现程序的转移56精选ppt1. 无条件转移指令格式: JMP OPRD目标地址与JMP在同一代码段与JMP不在同一代码段原则上可实现在整个内存空间的转移57精选ppt无条件段内转移转移的目标地址在当前代码段内,段地址不改变。即:目标地址是16位偏移地址。指令中直接给出目标地址由指令中的寄存
16、器或存储器操作数指出目标地址段内直接转移段内间接转移58精选ppt段内直接转移段内直接转移转移的目标地址由指令直接给出格式:JMP Label近地址标号59精选ppt段内直接转移示图JMPLabel代码段位移量下一条要执行指令的偏移地址=当前IP+位移量60精选ppt段内间接转移段内间接转移转移的目标地址存放在某个16位寄存器或存储器 的某两个单元中例:JMP BX若:BX=1200H则:转移的目标地址=1200HJMP代码段1200HMOV61精选ppt段内间接转移例JMP WORD PTRBX 设:BX=1200HJMP代码段数据段BX=1200XXHXXHIP指令码62精选ppt无条件段
17、间转移转移的目标地址不在当前代码段内。目标地址为32位,包括段地址和偏移地址。指令中直接给出目标地址由指令中的32位存储器操作数指出目标地址段间直接转移段间间接转移63精选ppt段间直接转移段内直接转移转移的目标地址由指令直接给出格式:JMP FAR Label远地址标号64精选ppt段间直接转移示图JMPLabel代码段1Label与JMP之间的位移量代码段2XXHXXHXXHXXHIPCS65精选ppt段间间接转移段内间接寻址转移的目标地址由指令中的32位操作数给出 例:JMP DWORD PTRBXXXHXXHXXHXXHBXIPCSJMP指令码代码段1代码段2数据段66精选ppt2.
18、条件转移指令在满足一定条件下,程序转移到目标地址继续执行条件转移指令均为段内短转移,即转移 范围为: -128-+127p13667精选ppt条件转移指令的应用几种条件转移指令的应用68精选ppt转移指令例统计内存数据段中以TABLE为首地址的100个8位符号数中正数、负数和零元数的个数。69精选ppt转移指令例(流程图)将存放各元素个数的单元清零取首地址设串长度取一个字节数正数个数加1零元素加1为负?为零?负数个数加1NYNYp14470精选ppt二、循环控制指令循环范围:以当前IP为中心的-128+127范围内循环。循环次数由CX寄存器指定。循环指令:LOOP *LOOPZ *LOOPNZ
19、无条件循环指令条件循环指令71精选ppt无条件循环指令格式: LOOP LABEL循环条件: CX 0操作: DEC CX JNZ 符号地址72精选ppt条件循环指令格式: LOOPZ LABEL LOOPE LABEL循环条件: CX 0 ZF=1格式: LOOPNZ LABEL LOOPNE LABEL循环条件: CX 0 ZF=073精选ppt三、过程调用和返回用于调用一个子过程;子过程由程序员预先设计 并装入内存 子过程执行结束后要返回 原调用处调用程序断点入口地址入口地址断点地址子程序74精选ppt调用指令的执行过程保护断点;将调用指令的下一条指令的地址(断点)压入堆栈获取子过程的入
20、口地址;子过程第1条指令的偏移地址执行子过程,含相应参数的保存及恢复;恢复断点,返回原程序。将断点偏移地址由堆栈弹出75精选ppt过程调用段内调用段间调用段内直接调用段内间接调用段间直接调用段间间接调用76精选ppt1. 段内调用被调用程序与调用程序在同一代码段调用前只需保护断点的偏移地址格式: CALL NEAR PROC执行过程:近过程名代码段1调用程序被调用程序代码段1 将断点的偏移地址压入堆栈 根据过程名找子程序入口77精选ppt段内调用例(1)CALL TIMRE(2)CALL WORD PTRSI直接调用间接调用44H33HCALL代码段数据段设:SI=1200H CS=6000H
21、1200H执行第(2)条指令后:6000HCS =3344HIP =78精选ppt2. 段间调用子过程与原调用程序不在同一代码段先将断点的CS压栈,再压入IP。调用前需保护断点的段基地址和偏移地址79精选ppt段间调用例格式: CALL FAR PROC格式例:CALL FAR TIMRECALL DWORD PTRSIXXHXXHCALL代码段数据段SIXXHXXHCSIP80精选ppt3. 返回指令功能:从堆栈中弹出断点地址,返回原程序格式: RETRET指令一般位于子程序的最后。81精选ppt四、中断指令中断中断源中断的类型中断指令引起CPU产生一次中断的指令82精选ppt中断与过程调用:中断是随机事件或异常事件引起,调用则是事 先已在程序中安排好 ; 响应中断请求不仅要保护断点地址,还要保护 FLAGS内容;调用指令在指令中直接给出子程序入口地址, 中断指令只给出中断向量码,入口地址则在向 量码指向的内存单元中。83精选ppt1. 中断指令格式: INT n说明: n4中断类型码n=0 255n 4 XXHXXHXXHXXH入口的偏移地址入口的段地址存放中断服务子程序入口地址的单元的偏移地址代码段数据段该单元在数据段,段地址=DS84精选ppt中断指令的执行过程将
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 船舶强度课程设计
- 二零二五年度抗滑桩施工信息化管理系统合同2篇
- 二零二五年度宠物店转让及租赁合同3篇
- 燃气管道巡线员管理制度模版(2篇)
- 课程设计无线充电电动车
- 二零二五年度应急物资储备与责任落实合同3篇
- 食品安全宣传周方案模版(2篇)
- 二零二五年度汽车尾气排放检测与治理委托合同范本3篇
- 二零二五年度个人股权转让与公司合并重组协议范本3篇
- 二零二五年图书馆室内装饰合同2篇
- 瑶医目诊图-望面诊病现用图解-目诊
- 2022年四级反射疗法师考试题库(含答案)
- 新《安全生产法》培训测试题
- 政务礼仪-PPT课件
- 特种涂料类型——耐核辐射涂料的研究
- 化工装置常用英语词汇对照
- 物资采购管理流程图
- 无牙颌解剖标志
- 标准《大跨径混凝土桥梁的试验方法》
- 格拉斯哥昏迷评分(GCS)--表格-改良自用
- ISO9001记录保存年限一览表
评论
0/150
提交评论