微机原理第03章课件

上传人:我*** 文档编号:145967037 上传时间:2020-09-25 格式:PPT 页数:29 大小:1.35MB
返回 下载 相关 举报
微机原理第03章课件_第1页
第1页 / 共29页
微机原理第03章课件_第2页
第2页 / 共29页
微机原理第03章课件_第3页
第3页 / 共29页
微机原理第03章课件_第4页
第4页 / 共29页
微机原理第03章课件_第5页
第5页 / 共29页
点击查看更多>>
资源描述

《微机原理第03章课件》由会员分享,可在线阅读,更多相关《微机原理第03章课件(29页珍藏版)》请在金锄头文库上搜索。

1、第3章,例3-68 在内存中有一个首地址为 ARRAY 的数据区存放了200个8位有符号数,统计其中正数、负数、0 的个数,并分别将统计结果存入PLUS、MINUS和ZERO单元中。,XOR AL, AL MOV PLUS,AL MOV MINUS,AL MOV ZERO,AL LEA SI, ARRAY MOV CX, 200 CLD LLAB:LODSB OR AL,AL JS MLAB JZ ZLAB,第3章:课本例3-68 ,INC PLUS JMP NEXT MLAB: INC MINUS JMP NEXT ZLAB: INC ZERO NEXT: DEC CX JNZ LLAB H

2、LT,数组 ARRAY 为N字数组,要求将其中正数、负数、0 的个数统计出来,分别存入寄存器 DI、AX 、SI中。思路:只统计正数和零的个数。 负数的个数=N-(正数的个数+零的个数),LEA BX, ARRAY XOR SI, SI XOR DI, DI MOV CX, N again: CMP BX, 0 JLE less_or_eq PUSHF ;保存标志,因为还要用来判断是否是负数 INC DI ;正数 POPF ;恢复标志,第3章:例3.28(仿课本例3-68 ),Less_or_eq: JL next ;负数 INC SI ;零 next: ADD BX, 2 DEC CX JN

3、Z AGAIN MOV AX, N SUB AX, SI SUB AX, DI HLT,第3章:例3.28,第3章:3.6.3 循环指令(p.84),一段代码序列多次重复执行就是循环 8086设计有针对CX计数器的计数循环指令 LOOP label;循环指令 ;首先CXCX1;然后判断;若CX0,转移 JCXZ label;为0循环指令 :如果CX0,则转移 label操作数采用相对短寻址方式,即跳转距离不超过-128127 还有LOOPZ/LOOPE和LOOPNZ/LOOPNE两条指令,CX 循环次数,循环体,LOOPZ (CX=0? ZF=0?),Y,N,第3章:3.6.3 循环指令(p.

4、84),LEA SI, STRING MOV CX, 0AH MOV AL, 20H ; 空格的ASCII码为20H MOV AH, 0H ; 结果在AH中 AGAIN: CMP AL, SI JZ ADDA JMP CONT ADDA: INC AH CONT: INC SI LOOP AGAIN HLT,例:数出长度为10的,以STRING为首地址的字符串中空格的个数。,循环条件:CX0 (CX)-1 CX;不影响标志 (CX)=0? 是,循环结束 否,继续循环,第3章:例3.30,41 42 43 20 45 46 20 48 20 49,string,第3章:例题,例3-69 循环指令

5、应用于软件延时。 DELAY PROC PUSH CX MOV CX,5 NEXT:NOP;占用3个时钟周期 NOP LOOP NEXT POP CX RET DELAY ENDP,MOV CX, N LEA SI, ASC -1 MOV AL, 20H AGAIN: INC SI CMP AL, SI LOOPNZ AGAIN JNZ EXIT ;找不到空格 MOV BX,SI ;找到空格 HLT EXIT: MOV BX,0 HLT,例:有一串n个字符的字符串(ABCDEFGH IJK) 存储于首地址为ASC的存储区, 要求查找空格的位置,将其地址存入BX中,如找不到空格,给BX寄存器存0

6、。,41 42 43 44 45 46 47 48 20 49,ASC,循环条件:CX0 且 ZF=0 (CX)-1 CX ;不影响标志 (CX) 0? And ZF=0 是,继续循环 否,循环结束,SI,第3章:例3.32 (仿课本例3-70 ),例3-60 在某字符串STRING中查找是否存在$,若存在,则将该字符所在地址送入BX寄存器,否则将BX寄存器清0。 LEA DI,STRING ;装入目的串偏移地址 MOV AL,$ ;装入关键字节 MOV CX,COUNT ;装入字符串长度 CLD REPNE SCASB JNZZER;没找到,则转移 DECDI MOV BX,DI JMPST

7、0 ZER:MOV BX,0 ST0:HLT,前面讲过的 串搜索指令SCAS例题,3.3.6:4 子程序指令(过程调用和返回指令),子程序是完成特定功能的一段程序 当主程序(调用程序)需要执行这个功能时,采用CALL调用指令转移到该子程序的起始处执行 当运行完子程序功能后,采用RET返回指令回到主程序继续执行,演示,转移指令有去无回 子程序调用需要返回, 其中利用堆栈保存返回地址,第3章: 1. 子程序调用指令CALL,CALL指令分成4种类型(类似JMP) CALL label;段内直接调用 CALL r16/m16;段内间接调用 CALL far ptr label;段间直接调用 CALL

8、 dword ptr mem;段间间接调用 CALL指令需要保存返回地址: 段内调用入栈偏移地址IP SPSP2,SS:SPIP 段间调用入栈偏移地址IP和段地址CS SPSP2,SS:SPCS SPSP2,SS:SPIP,第3章: 2. 子程序返回指令RET,根据段内和段间、有无参数,分成4种类型 RET;无参数段内返回 RET i16;有参数段内返回 RET;无参数段间返回 RET i16;有参数段间返回 需要弹出CALL指令压入堆栈的返回地址 段内返回出栈偏移地址IP IPSS:SP, SPSP2 段间返回出栈偏移地址IP和段地址CS IPSS:SP,SPSP2 CSSS:SP,SPSP

9、2,参数(065536)表示返回时从堆 栈中舍弃的字节数,一般为偶数。,段内 调用,段间 调用,直接调用,间接转移,直接调用,间接调用,CALL ADDR,CALL FAR PTR ADDR,CALL DWORD PTR OPRD,CALL RET,分类,名称,指令,CALL WORD PTR OPRD,CALL change,CALL BX,CALL far ptr tran,CALL DWORD PTRBX,举例,返回,返回,带立即数 返回,RET,RET EXP,RET,RET 6,near-标号,far-标号,16位寄存器 存储器,存储器(32位),操作数,第3章:3.6.4 子程序指

10、令,code segment main proc far push ax push bx push cx call sub ret main endp sub proc near ret 6 sub endp code ends,(SP),第3章:例:带立即数返回,第3章:例3.32 十六进制转换为ASCII码的子程序,;子程序:将DL低4位的一位16进制数转换成ASCII码 htoasc proc and dl,0fh;只取DL的低4位 or dl,30h;DL高4位变成3 cmp dl,39h ;是09,还是0Ah0Fh? jbe htoend;是09,转移 add dl,7;是0Ah0F

11、h,加上7 htoend:ret;子程序返回 htoascendp,转换原理,;主程序:调用子程序 mov dl,28h call htoasc,3.3.6:5 中断指令,中断(Interrupt)是又一种改变程序执行顺序的方法 8086CPU支持256个中断,每个中断用一个编号(中断向量号)区别 中断指令有3条: INT i8 IRET INTO 本节主要掌握类似子程序调用指令的中断调用指令INT i8,进而掌握系统功能调用(第4章内容),INT i8 ;中断调用指令:产生i8号软件中断 ;主程序使用,其中i8表示中断向量号(取值范围为0255) INTO ;溢出中断指令:用来判断有符号数加

12、减运算是否溢出。一般把INTO指令安排在有符号数加、减运算指令的后面,一旦查出OF=1。则转到溢出中断处理程序。INTO指令是n4的INT指令。其中断向量为0010H。,3.3.6:5 中断指令,;这两个指令使IF和PF为0,其它标志位不受影响,IRET ;中断返回指令:将堆栈中的断点地址弹出赋给IP和CS,以实现中断返回;将标志寄存器的值弹出,恢复中断前的状态。 ;中断服务程序使用,3.3.6:5 中断指令,标志处理指令,3.3.7 处理器控制指令,处理器控制类指令用来控制CPU的状态,使CPU暂停、等待或空操作等,其它处理指令,3.3.7 处理器控制指令,3.3.7 处理器控制指令,NOP

13、;空操作指令,等同于“xchg ax,ax”指令 SEG:;段超越前缀指令:CS:,SS:,DS:,ES: HLT;暂停指令:CPU进入暂停状态 还有其他指令: LOCK ESC WAIT,第3章:总结,本章展开了8086CPU16位指令系统的常用指令 希望大家就如下几个方面进行一下总结: 操作数寻址方式和目的地址寻址方式 指令支持的操作数形式 常用指令的助记符和功能 指令对标志的影响 通过复习整理,形成指令系统的整体概念,进而掌握常用指令,指令执行,第3章:教学要求,了解微处理器基本结构、8088/8086的功能结构 掌握8088/8086的寄存器结构、存储器结构和寻址方式 熟悉汇编语言的语

14、句格式,掌握8088/8086基本指令: 数据传送:MOVXCHGXLAT、PUSHPOP、LEA 加减运算:ADDSUB、ADCSBB、CMP、INCDEC 位操作:ANDORXORNOTTEST、SHLSHRSAR、ROLRORRCLRCR 控制转移:JMPJccLOOP、CALLRET、INT n,奇偶校验,奇偶校验是计算机中最常使用的校验方法,因为不论用硬件还是用软件都很容易实现 偶校验:如果数据中“1”的个数不是偶数,则校验位是1,使得包括校验位在内的数据中“1”的个数为偶数;否则,校验位为0 奇校验:如果数据中“1”的个数不是奇数,则校验位是1,使得包括校验位在内的数据中“1”的个数为奇数;否则,校验位为0,主程序与子程序,CALL label,主程序,RET,子程序,回到CALL指令后的指令处返回地址,十六进制数转换为ASCII码的原理,主程序与中断服务程序,主程序,IRET,中断服务程序,断点,中断请求,中断请求可以来自处理器外部的中断源, 也可以由处理器执行指令引起: 例如执行INT i8指令。,8088的指令执行,

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 办公文档 > PPT模板库 > PPT素材/模板

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号