微机原理与接口技术 第5章 汇编语言程序设计 西安邮电大学计算机学院 王 钰.

Slides:



Advertisements
Similar presentations
(5)能根据具体要求绘制简单的电路图(不超过两个用电器) b
Advertisements

第一章 计算机基础知识 计算机的发展简史 1 计算机软件系统 6 计算机的定义和分类 2 微型计算机的组成 7 计算机的特点和用途 3
输入输出程序设计 输入输出的基本概念 无条件方式输入输出 查询方式输入输出 中断方式输入输出.
汇编语言程序设计 吴 向 军 中山大学计算机科学系
微型计算机技术 教 学 指 导(七) 太原广播电视大学 郭建勇.
第10章 DOS功能调用与BIOS中断调用.
第7章 8086/8088汇编语言程序设计 7.1 引言 7.2 顺序程序设计 7.3 分支结构程序设计 7.4 循环结构程序设计
第四章 汇编语言 程序设计 任课教师:王晓甜
大连理工大学软件学院 软件工程系 赖晓晨 计算机组成与结构 大连理工大学软件学院 软件工程系 赖晓晨
本周实验安排 实验内容:(P231)人名排序的例子。
微机原理与接口技术 微机原理与接口技术 朱华贵 2015年10月30日.
本章分为四节,主要介绍: 4.1 程序编制的方法和技巧 4.2 源程序的编辑和汇编 4.3 基本程序结构 4.4 常用程序举例.
得技通电子 问题 1 右何者非為假指令 (1) XRL (2) EQU (3) MACRO (4) ORG.
单片机原理与应用.
第3章 80x86汇编语言程序设计(下).
4.1 汇编语言 4.2 顺序结构程序 4.3 分支程序设计 4.4 循环程序设计 4.5 子程序设计
9.1 可编程并行输入/输出接口芯片8255A 9.2 可编程计数器/定时器 可编程串行输入/输出接口芯片8251A
3.3.5 程序控制指令 控制转移指令分为: 转移指令 循环控制指令 调用和返回指令 中断指令.
微机原理与接口技术 微机原理与接口技术 朱华贵 2015年11月26日.
第5章 循环与分支程序设计  循环程序设计  分支程序设计.
汇编语言程序设计 Assembly Language Programming
第三章 寻址方式与指令系统 3.1 寻址方式 一条指令通常由两大部分构成: 操作码 操作数
第7章 并行接口 7.1 简单并行接口 7.2 可编程并行接口8255A 7.3 键盘接口 7.4 LED显示器接口.
微机原理与接口技术 第2章 8086系统结构 朱华贵 2015年09月17日.
第九章 计数器和定时器电路 第一节 概述 第二节 Intel 8253的控制字 第三节 Intel 8253的工作方式 第九章 计数器和定时器电路 第一节 概述 第二节 Intel 8253的控制字 第三节 Intel 8253的工作方式 第四节 Intel 8253在IBM PC机上的应用.
微机原理与接口技术 微机原理与接口技术 朱华贵 2015年12月10日.
微机原理与接口技术 微机原理与接口技术 朱华贵 2015年11月05日.
输入输出与中断 主要内容 CPU与外设之间数据传送方式 中断技术 8086中断系统和中断处理.
第八章 输入输出程序设计 总线 CPU MEM I/O接口 I/O设备.
第3章 IA-32指令系统 3.1 基本数据类型 3.2 IA-32的指令格式 3.3 IA-32指令的操作数寻址方式
第8章 寻址方式与指令系统.
第二部分 PC 微机异步通信适配器的分析和使用 一、PC中的UART 1.INS PC16450/PC16550
第4章 汇编语言程序设计 4.1 程序设计语言概述 4.2 汇编语言的程序结构与语句格式 4.3 汇编语言的伪指令
微机原理及应用 主讲:谢维成 西华大学 电气信息学院 1.
微机原理及应用 主讲:郑海春.
第一章 8086程序设计 第二章 MCS-51程序设计 第三章 微机基本系统的设计 第四章 存贮器与接口 第五章 并行接口
第8章 PCH中的常规接口.
汇编语言程序设计课程设计 第二次实验 DEBUG基本命令与算术运算指令
微型机系统与接口技术自学部分 只作扩展知识用 本电子课件包含2011版第3, 6, 7, 8章自学部分 东南大学计算机科学与工程学院.
微型计算机原理及应用.
第3章 微型计算机输入输出接口 3.1 输入/输出接口 3.2 输入输出数据传输的控制方式 3.3 开关量输入输出接口 欢迎辞.
第六章 子程序结构 §6.1 子程序的设计方法 §6.2 嵌套与递归子程序 §6.3 子程序举例 §6.4 DOS系统功能调用.
1.3 微型计算机的结构和工作原理.
第 13 章 中断系统.
第二章 模拟量输出通道 本章要点 1.模拟量输出通道的结构组成与模板通用性; 2.8位D/A转换器DAC0832的原理组成及其接口电路
第九章 高级宏汇编语言 9.1 结构 结构就是将逻辑上有一定关系的一组数据,以某种方式组合在一起所形成的数据形式。
第5章 循环与分支程序设计 学习目标: 了解并掌握循环程序的构造方法,尤其是对循环控制条件的设置以及可能出现的边界情况的考虑。掌握起泡排序算法这种多重循环程序设计中的常用方法。交换标志位的设置在此算法中更能提高效率。学会在数组排序算法中采用折半查找法来提高查找效率。学会使用跳跃表法实现CASE结构。
4.1 汇编语言程序格式 4.2 MASM中的表达式 4.3 伪指令语句 4.4 DOS系统功能调用和BIOS中断调用
3.4.5 控制转移指令(Control transfer instructions) (一)、控制转移指令概述
微机原理与接口技术 微机原理与接口技术 朱华贵 2015年11月19日.
第五章:输入输出基本技术 主讲教师:范新民.
第4章 汇编语言程序格式  汇编程序功能  伪操作  汇编语言程序格式  汇编语言程序的上机过程.
第10章 可编程外围接口芯片8255A及其应用 10.1 概述 A的工作原理 A的应用举例.
习题3 1、 分别说明下列指令的原操作数和目的操作数各采用什么寻址方式。 设定如下: ①立即寻址 ② ① ②寄存器寻址
第 3 章、組合語言 作者:陳鍾誠 旗標出版社.
第九章 BIOS和DOS中断 在存储器系统中,从地址0FE000H开始的8K ROM(只读存储器)中装有BIOS(Basic Iuput /output System)例行程序。驻留在ROM中的BIOS给PC系列的不同微处理器提供了兼容的系统加电自检,引导装入,主要I/O设备的处理程序以及接口控制等功能模块来处理所有的系统中断。使用BIOS功能调用,给程序员编程带来很大方便,程序员不必了解硬件操作的具体细节,直接用指令设置参数,然后中断调用BIOS中的子功能,所以利用BIOS功能编写的程序简洁,可读性好,
第2章 80x86计算机组织  计算机系统  存储器  中央处理机  外部设备.
微机原理与接口技术 微机原理与接口技术 朱华贵 2015年11月13日.
《微型计算机原理与接口技术》 第4版 王良 宁德师范学院 吴宁 乔亚男 编著 清华大学出版社 出版
第5章 循环与分支程序设计  循环程序设计  分支程序设计.
微机原理与接口技术 微机原理与接口技术 朱华贵 2015年12月17日.
第八章 中断系统.
四、手工汇编 完成汇编的方法有两种:手工汇编和汇编程序汇编 1.手工汇编步骤 A
第8章 微处理器程序设计 罗文坚 中国科大 计算机学院
微机原理与接口技术 微机原理与接口技术 朱华贵 2015年11月06日.
第6章 子程序结构 在程序设计中,我们会发现一些多次无规律重复的程序段或语句序列。解决此类问题一个行之有效的方法就是将它们设计成可供反复调用的独立的子程序结构,以便在需要时调用。在汇编语言中,子程序又称过程。 调用子程序的程序称为主调程序或主程序。 2019/7/20 ch6.
大数据搜索挖掘实验室 第五章 子程序设计 张华平 副教授 博士 Website: 大数据搜索挖掘实验室
第4章 MCS-51汇编语言程序设计 教学基本要求: (1)、了解MCS-51汇编语言程序设计的特点;
第4章 汇编语言程序格式  汇编程序功能  伪操作  汇编语言程序格式  汇编语言程序的上机过程
第三章 8086的指令系统 8086指令特点 8086的寻址方式 8086的指令格式及数据类型 8086的指令集.
Presentation transcript:

微机原理与接口技术 第5章 汇编语言程序设计 西安邮电大学计算机学院 王 钰

第5章 汇编语言程序设计 本讲主要内容 汇编语言程序设计 过程程序设计

4. 子程序设计 … 子程序又称为过程,它相当于高级语言的过程或函数,是一个独立的程序段,能完成某些确定的功能,并能被其它程序调用。 第5章 汇编语言程序设计 4. 子程序设计 子程序又称为过程,它相当于高级语言的过程或函数,是一个独立的程序段,能完成某些确定的功能,并能被其它程序调用。 (1) 过程的定义 过程名 PROC 类型 RET 过程名 ENDP …

… … … 第5章 汇编语言程序设计 (2)过程的调用 CALL 过程名 ① 段内调用 CSEG SEGMENT CALL SUBT 第5章 汇编语言程序设计 (2)过程的调用 CALL 过程名 ① 段内调用 CSEG SEGMENT CALL SUBT MOV AH,4CH INT 21H SUBT PROC NEAR RET SUBT ENDP CSEG ENDS … … …

第5章 汇编语言程序设计 ② 段间调用 XSEG SEGMENT YSEG SEGMENT CALL SUBT1 CALL SUBT1 MOV AH,4CH YSEG ENDS INT 21H SUBT1 PROC FAR RET SUBT1 ENDP XSEG ENDS … … … … …

(3) 子程序在源程序中的位置 第5章 汇编语言程序设计 第5章 汇编语言程序设计 (3) 子程序在源程序中的位置 子程序一般是放在返回DOS语句和段结束语句之间的位置。因为在正常情况下这个区域的程序是不会被执行的。 当然,也可以放在主程序的最前面。这时要注意主程序的起始标号要在子程序之后。 XSEG SEGMENT CALL SUBT1 MOV AH,4CH INT 21H SUBT1 PROC FAR RET SUBT1 ENDP XSEG ENDS … XSEG SEGMENT SUBT1 PROC FAR RET SUBT1 ENDP STRAT: CALL SUBT1 MOV AH,4CH INT 21H XSEG ENDS END STRAT …

综上,当需多次访问的程序段较长,访问次数又不是太多时,选用子程序结构较好。 第5章 汇编语言程序设计 (4)宏指令与子程序(过程) ① 空间开销:子程序优于宏指令。 ② 时间开销:宏指令优于子程序。 综上,当需多次访问的程序段较长,访问次数又不是太多时,选用子程序结构较好。 当需多次访问的程序段较短,访问次数又很频繁时,选用宏指令结构显然要更好些。

要求转换ASCII码部分分别用子程序调用和宏调用的方法实现。 第5章 汇编语言程序设计 (5) 子程序调用和宏调用使用的例子 [例] 在存储器Hexdata单元中存放着4位十六进制数4D7EH,试编写程序将这4位十六进制数分别转换为相应的ASCII码,并依次存放到Result的4个单元中去,并依次在屏幕上显示。 要求转换ASCII码部分分别用子程序调用和宏调用的方法实现。

第5章 汇编语言程序设计 ① 用子程序调用方法编程: LEA SI, RESULT+3 MOV CX, 4 STD LOOP1: LODSB 第5章 汇编语言程序设计 ① 用子程序调用方法编程: LEA SI, RESULT+3 MOV CX, 4 STD LOOP1: LODSB MOV DL, AL MOV AH, 02H INT 21H LOOP LOOP1 MOV DL, 'H' MOV AH, 4CH ;十六进制转换成ASCII码子程序 HEXASC PROC CMP AL, 0AH JB P30 ADD AL, 07H P30: ADD AL, 30H RET HEXASC ENDP   CODE ENDS END START DATA SEGMENT Hexdata DW 4D7EH Result DB 4 DUP(?) DATA ENDS CODE SEGMENT ASSUME CS:CODE, DS:DATA START: MOV AX, DATA MOV DS, AX MOV CX, 4 LEA DI, Result MOV BX, Hexdata NEXT: MOV AX, BX AND AL, 0FH CALL HEXASC ;子程序调用 MOV [DI], AL INC DI PUSH CX MOV CL, 4 SHR BX, CL POP CX LOOP NEXT

第5章 汇编语言程序设计 ② 用宏调用方法编程 HEXASC ;宏调用 MOV [DI], AL INC DI PUSH CX 第5章 汇编语言程序设计 ② 用宏调用方法编程 HEXASC ;宏调用 MOV [DI], AL INC DI PUSH CX MOV CL, 4 SHR BX, CL POP CX LOOP NEXT LEA SI, RESULT+3 MOV CX, 4 STD LOOP1: LODSB MOV DL, AL MOV AH, 02H INT 21H LOOP LOOP1 MOV DL, 'H' MOV AH, 4CH INT 21H  CODE ENDS END START DATA SEGMENT Hexdata DW 4D7EH Result DB 4 DUP(?) DATA ENDS CODE SEGMENT ASSUME CS:CODE, DS:DATA START: MOV AX, DATA MOV DS, AX ;十六进制转换成ASCII码宏定义 HEXASC MACRO CMP AL, 0AH JB PLUS30 ADD AL, 07H PLUS30: ADD AL, 30H ENDM MOV CX, 4 LEA DI, Result MOV BX, [SI] NEXT: MOV AX, BX AND AL, 0FH

第5章 汇编语言程序设计 LEA SI, RESULT+3 START: MOV AX, DATA MOV CX, 4 MOV DS, AX 第5章 汇编语言程序设计 LEA SI, RESULT+3 MOV CX, 4 STD LOOP1: LODSB MOV DL, AL MOV AH, 02H INT 21H LOOP LOOP1 MOV DL, 'H' MOV AH, 4CH INT 21H  START: MOV AX, DATA MOV DS, AX MOV CX, 4 LEA DI, Result MOV BX, [SI] NEXT: MOV AX, BX AND AL, 0FH CMP AL, 0AH JB PLUS30 ADD AL, 07H PLUS30: ADD AL, 30H MOV [DI], AL INC DI PUSH CX MOV CL, 4 SHR BX, CL POP CX LOOP NEXT

第5章 汇编语言程序设计小结 第5章 汇编语言程序设计 首先,我们学习了汇编语言源程序的分段结构和语句分类及语 句格式。 第5章 汇编语言程序设计 第5章 汇编语言程序设计小结 首先,我们学习了汇编语言源程序的分段结构和语句分类及语 句格式。 其次,详细学习了伪指令语句和宏指令语句。 最后,我们学习了汇编语言程序设计中四种结构程序的设计方 法,即简单结构程序设计方法,循环结构程序设计方法,分支 结构程序设计方法和子程序结构程序设计方法。 另外,我们还学习了如何通过上机操作把汇编语言源程序变成 计算机能够执行的应用程序。 其中,结构程序设计是本章的重点。希望大家要熟练掌握,并 能在程序设计中灵活应用。

再 见