[微机原理][课件][第07讲][程序设计方法][2]
合集下载
微机原理课件ppt
04
微机程序执行过程
程序加载与执行
程序加载
将程序从存储介质中读取到内存中, 为程序的执行做好准备。
程序执行
CPU按照指令逐条执行程序,完成程 序所要求的任务。
指令执行流程
取指令
CPU从内存中读取指令并存放到指令寄存器 中。
指令译码
对指令进行译码,确定指令的操作码和操作 数。
执行指令
根据译码结果,完成相应的操作,如数据传 输、算术运算、逻辑运算等。
的外设接口。进入21世纪后,微机进一步 发展为DSP(数字信号处理)和FPGA(现 场可编程门阵列)等高性能计算平台。现在 ,微机已进入物联网和人工智能时代,成为
智能硬件的核心组成部分。
微机的应用领域
总结词
微机广泛应用于工业控制、智能家居、医疗设备、航 空航天等领域。
详细描述
由于微机具有体积小、功耗低、价格实惠等优点,它被 广泛应用于各种领域。在工业控制领域,微机可以用于 实现自动化生产线的控制和监测。在智能家居领域,微 机可以用于实现智能照明、智能安防、智能家电控制等 功能。在医疗设备领域,微机可以用于实现医疗影像处 理、医疗数据分析和医疗设备控制等功能。在航空航天 领域,微机可以用于实现飞行控制、导航数据处理和卫 星通信等功能。
立即数
表示常数或立即操作数的值。
注释
用于解释指令的含义和功能,方便阅读和理解。
指令类型
数据传输指令
用于在内存和寄存器之间传输数据,如 MOV指令。
逻辑运算指令
用于进行逻辑运算,如AND、OR、XOR等 指令。
算术运算指令
用于进行算术运算,如ADD、SUB、MUL 、DIV等指令。
控制转移指令
用于改变程序的执行流程,如JMP、CALL 、RET等指令。
微型计算机原理与汇编语言程序设计第二版ppt课件完整版
8086经外部总线对存储器或I/O端口 进行一次信息输入或输出过程称总线操 作。 执行该操作所需要时间称总线周期。 8086总线周期至少由4个时钟周期组 成。每个时钟周期称T状态,用T1、T2、 T3和T4表示。
78
第3章
79
第3章
3.3.3 8086微处理器最小/最大工作方式
1.最小工作方式 8086的33引脚接+5V,系统处于最小工作方式。 系统中只有8086一个微处理器。 2.最大工作方式 把8086的33引脚接地,系统处于最大工作方式。 包含有两个或多个微处理器。其中有一个主处理器8086,其他处理器称协处理器。
4
第1章
发展经历了6代: 第一代:4位和8 位低档微处理器 第二代:8位中高档微处理器 第三代:16位微处理器 第四代:32位微处理器 第五代:32位高档微处理器 第六代:64位微处理器
5
第1章
1.1.3 微型计算机的应用 1. 科学计算 2. 数据处理 3. 计算机辅助技术 4. 过程检测与控制 5. 人工智能 6. 计算机网络应用
14
15
第1章
1.4.2 微型计算机的常用软件 ——计算机软件包括系统运行所需的各 种程序、数据、文件有关资料,分系统软 件和应用软件。 系统软件支持应用软件的开发与运行, 如操作系统和程序设计语言。 应用软件为用户解决某种应用问题。 软件系统组成结构如图1-9所示。
16
第1章
17
第1章
1.4.3 软硬件之间的相互关系 1. 硬件和软件相互依存 2. 硬件和软件无严格界线 3. 硬件和软件协同发展 4. 固件 5. 软件的兼容性
52
第2章
本章内容结束
谢 谢!
53
第3章
典型微处理器及其体系结构
78
第3章
79
第3章
3.3.3 8086微处理器最小/最大工作方式
1.最小工作方式 8086的33引脚接+5V,系统处于最小工作方式。 系统中只有8086一个微处理器。 2.最大工作方式 把8086的33引脚接地,系统处于最大工作方式。 包含有两个或多个微处理器。其中有一个主处理器8086,其他处理器称协处理器。
4
第1章
发展经历了6代: 第一代:4位和8 位低档微处理器 第二代:8位中高档微处理器 第三代:16位微处理器 第四代:32位微处理器 第五代:32位高档微处理器 第六代:64位微处理器
5
第1章
1.1.3 微型计算机的应用 1. 科学计算 2. 数据处理 3. 计算机辅助技术 4. 过程检测与控制 5. 人工智能 6. 计算机网络应用
14
15
第1章
1.4.2 微型计算机的常用软件 ——计算机软件包括系统运行所需的各 种程序、数据、文件有关资料,分系统软 件和应用软件。 系统软件支持应用软件的开发与运行, 如操作系统和程序设计语言。 应用软件为用户解决某种应用问题。 软件系统组成结构如图1-9所示。
16
第1章
17
第1章
1.4.3 软硬件之间的相互关系 1. 硬件和软件相互依存 2. 硬件和软件无严格界线 3. 硬件和软件协同发展 4. 固件 5. 软件的兼容性
52
第2章
本章内容结束
谢 谢!
53
第3章
典型微处理器及其体系结构
微机原理汇编语言程序设计ppt课件
汇编后源操作数被翻译为:3F00H, 所以上述指令与以下指令等价: AND AX, 3F00H
烧伤病人的治疗通常是取烧伤病人的 健康皮 肤进行 自体移 植,但 对于大 面积烧 伤病人 来讲, 健康皮 肤很有 限,请 同学们 想一想 如何来 治疗该 病人
4.2.3.3 表达式—分析运算符
分析运算符包括:SEG、OFFSET SEG:取变量/标号的段地址 OFFSET:取变量/标号的偏移地址
烧伤病人的治疗通常是取烧伤病人的 健康皮 肤进行 自体移 植,但 对于大 面积烧 伤病人 来讲, 健康皮 肤很有 限,请 同学们 想一想 如何来 治疗该 病人
4.2.3.3 表达式
表达式由标号、常量、变量等加上必要的运算符构成 有数字表达式和地址表达式两种 汇编时按优先规则对表达式进行计算,计算出具体的数值
ASSUME DS:DATA, ES:EXTRA代码段 CODE ENDS
MAIN PROC FAR
; ----------------------------------------------
MOV AX, DATA
END MAIN
MOV DS, AX
烧伤病人的治疗通常是取烧伤病人的 健康皮 肤进行 自体移 植,但 对于大 面积烧 伤病人 来讲, 健康皮 肤很有 限,请 同学们 想一想 如何来 治疗该 病人
4.2.3.1 常量
常量操作数:
数值常数:11001000B,0FA21H,329D(329) 字符常数:‘ABCD’ (41H 42H 43H 44H)
例:
MOV AX, 0FA21H VAR DB 329 STR DB ‘ABCD’
烧伤病人的治疗通常是取烧伤病人的 健康皮 肤进行 自体移 植,但 对于大 面积烧 伤病人 来讲, 健康皮 肤很有 限,请 同学们 想一想 如何来 治疗该 病人
烧伤病人的治疗通常是取烧伤病人的 健康皮 肤进行 自体移 植,但 对于大 面积烧 伤病人 来讲, 健康皮 肤很有 限,请 同学们 想一想 如何来 治疗该 病人
4.2.3.3 表达式—分析运算符
分析运算符包括:SEG、OFFSET SEG:取变量/标号的段地址 OFFSET:取变量/标号的偏移地址
烧伤病人的治疗通常是取烧伤病人的 健康皮 肤进行 自体移 植,但 对于大 面积烧 伤病人 来讲, 健康皮 肤很有 限,请 同学们 想一想 如何来 治疗该 病人
4.2.3.3 表达式
表达式由标号、常量、变量等加上必要的运算符构成 有数字表达式和地址表达式两种 汇编时按优先规则对表达式进行计算,计算出具体的数值
ASSUME DS:DATA, ES:EXTRA代码段 CODE ENDS
MAIN PROC FAR
; ----------------------------------------------
MOV AX, DATA
END MAIN
MOV DS, AX
烧伤病人的治疗通常是取烧伤病人的 健康皮 肤进行 自体移 植,但 对于大 面积烧 伤病人 来讲, 健康皮 肤很有 限,请 同学们 想一想 如何来 治疗该 病人
4.2.3.1 常量
常量操作数:
数值常数:11001000B,0FA21H,329D(329) 字符常数:‘ABCD’ (41H 42H 43H 44H)
例:
MOV AX, 0FA21H VAR DB 329 STR DB ‘ABCD’
烧伤病人的治疗通常是取烧伤病人的 健康皮 肤进行 自体移 植,但 对于大 面积烧 伤病人 来讲, 健康皮 肤很有 限,请 同学们 想一想 如何来 治疗该 病人
微机原理与应用第七章PPT课件
7.1 宏汇编语言的基本语法 7.2 伪指令 7.3 宏指令 7.4 系统功能调用 7.5 汇编程序的功能及汇编过程
汇编程序:用来把汇编语言编写的程序自动翻译成目的 程序的软件
7.1.1 伪指令语句格式
,
标号名
伪指令
操作数 ;注释
常量名 变量名 过程名 结构名 记录名等
没有冒号!
常数
字符串
常量名
变量名
例: MOV AX,100*4+5 ;AX=405
⑵ 逻辑运算符:AND、OR、NOT、XOR
例: 24H OR 0FH=2FH
⑶ 关系运算: EQ、NE、LT、LE、GT、GE
例:MOV AX,1234H GT 1024H
MOV AX,0FFFFH
按位运算
关系运算结果总是 一个数值。若关系不 成立,则结果为0,若
⑷ 分析运算符(数值回送操作符):
变量名
Байду номын сангаас
SEG(计算段基址)
例1:把VARW所在段的段值送AX
OFFSET(计算偏移地址)
MOV AX,SEG VARW
例2:把VARW的偏移地址送BX
TYPE(计算符号类型值; P157) MOV BX,OFFSET VARW
SIZE(计算符号名分配的字节数)(=TYPE*LENGTH)
LENGTH(计算符号名分配的数)
例3:假设VARW变量是字变量,把VARW的类型值送AL MOV AL, TYPE VARW ;AL =2
SEG:取变量/标号的段地址 OFFSET:取变量/标号的偏移地址 例:VAR DB 12H
…… MOV BX,OFFSET VAR ;取变量VAR的偏移地址 MOV AX,SEG VAR ;取变量VAR的段地址
汇编程序:用来把汇编语言编写的程序自动翻译成目的 程序的软件
7.1.1 伪指令语句格式
,
标号名
伪指令
操作数 ;注释
常量名 变量名 过程名 结构名 记录名等
没有冒号!
常数
字符串
常量名
变量名
例: MOV AX,100*4+5 ;AX=405
⑵ 逻辑运算符:AND、OR、NOT、XOR
例: 24H OR 0FH=2FH
⑶ 关系运算: EQ、NE、LT、LE、GT、GE
例:MOV AX,1234H GT 1024H
MOV AX,0FFFFH
按位运算
关系运算结果总是 一个数值。若关系不 成立,则结果为0,若
⑷ 分析运算符(数值回送操作符):
变量名
Байду номын сангаас
SEG(计算段基址)
例1:把VARW所在段的段值送AX
OFFSET(计算偏移地址)
MOV AX,SEG VARW
例2:把VARW的偏移地址送BX
TYPE(计算符号类型值; P157) MOV BX,OFFSET VARW
SIZE(计算符号名分配的字节数)(=TYPE*LENGTH)
LENGTH(计算符号名分配的数)
例3:假设VARW变量是字变量,把VARW的类型值送AL MOV AL, TYPE VARW ;AL =2
SEG:取变量/标号的段地址 OFFSET:取变量/标号的偏移地址 例:VAR DB 12H
…… MOV BX,OFFSET VAR ;取变量VAR的偏移地址 MOV AX,SEG VAR ;取变量VAR的段地址
微机原理ppt全
第7章 接口电路应用举例
7.1 A/D转换器 7.2 A/D转换器
7.3 综合应用举例
第7章 接口电路应用举例
7.3.1简易电压表
通常对电压的测量是用指针式电压表或数字 式万用表,而数字式万用表使用了专用的LCD显示 模块,并内嵌了A/D转换器。我们使用ADC0809作 A/D转换,采集的数据经过处理后在数码管上显示 电压值,制作简易电压表。 使用的接线如图7-3所示,电压输入通过IN0 端口,用8255控制七段数码管显示电压值(05.00 V)。8255的CS接A15,ADC0805的CS接A14。 8位A/D转换为0-255(00-FF)代表0-5V,每1V由 255/5=51个检测点表示,为了便于计算,我们也 可以用255代表5.1V。用PA口发送七段码数据、B 口选择段。启动检测后设置了数码管检查程序, 用来检查数码管有无缺段。程序流程图如图7-6所 示。
第7章 接口电路应用举例
图7-1
ADC0809内部结构框图
第7章 接口电路应用举例
ADC0809芯片的引脚如图7-2所示,其引脚功能如下:
图7-2
ADC0809引脚图
第7章 接口电路应用举例
IN0~IN7:8路模拟量输入端口; D0~D7:8位数字量输出端口; START:启动转换控制端口,输入一个正脉冲后开始A/D转换; ALE:地址锁存控制端口,在其上升沿,将ADDA、ADDB、ADDC三个地址 信号送入地址锁存器,经译码后选择相应的模拟量输入通道; EOC:转换结束信号输出端,转换开始EOC变为低电平,转换结束后变 为高电平,并将转换后的数字信号送入三态输出锁存器。 CLK:时钟信号输入端口,须外接10kHz~1280kHz的时钟信号,典型值 为640kHz,一般也可用系统中的ALE信号。 OE:输出允许控制端口,当该端口由低电平变为高电平时,打开输出 锁存器将数据发送到数据总线上; Vref(+)、Vref(-):基准参考电压输入端口,它决定输入模拟量的范 围,一般情况下Vref(+)接+5V,Vref(-)接地, 0~5V对应的数字量为00H~FFH。
7.1 A/D转换器 7.2 A/D转换器
7.3 综合应用举例
第7章 接口电路应用举例
7.3.1简易电压表
通常对电压的测量是用指针式电压表或数字 式万用表,而数字式万用表使用了专用的LCD显示 模块,并内嵌了A/D转换器。我们使用ADC0809作 A/D转换,采集的数据经过处理后在数码管上显示 电压值,制作简易电压表。 使用的接线如图7-3所示,电压输入通过IN0 端口,用8255控制七段数码管显示电压值(05.00 V)。8255的CS接A15,ADC0805的CS接A14。 8位A/D转换为0-255(00-FF)代表0-5V,每1V由 255/5=51个检测点表示,为了便于计算,我们也 可以用255代表5.1V。用PA口发送七段码数据、B 口选择段。启动检测后设置了数码管检查程序, 用来检查数码管有无缺段。程序流程图如图7-6所 示。
第7章 接口电路应用举例
图7-1
ADC0809内部结构框图
第7章 接口电路应用举例
ADC0809芯片的引脚如图7-2所示,其引脚功能如下:
图7-2
ADC0809引脚图
第7章 接口电路应用举例
IN0~IN7:8路模拟量输入端口; D0~D7:8位数字量输出端口; START:启动转换控制端口,输入一个正脉冲后开始A/D转换; ALE:地址锁存控制端口,在其上升沿,将ADDA、ADDB、ADDC三个地址 信号送入地址锁存器,经译码后选择相应的模拟量输入通道; EOC:转换结束信号输出端,转换开始EOC变为低电平,转换结束后变 为高电平,并将转换后的数字信号送入三态输出锁存器。 CLK:时钟信号输入端口,须外接10kHz~1280kHz的时钟信号,典型值 为640kHz,一般也可用系统中的ALE信号。 OE:输出允许控制端口,当该端口由低电平变为高电平时,打开输出 锁存器将数据发送到数据总线上; Vref(+)、Vref(-):基准参考电压输入端口,它决定输入模拟量的范 围,一般情况下Vref(+)接+5V,Vref(-)接地, 0~5V对应的数字量为00H~FFH。
微机原理教学PPT
功能 4. 微型计算机的应用概况
3
第一章:概述——微机原理的课 程内容、学习目的
•
研究微型计算机的基本工作原理以及微型计算机接口技术(如中断控 制接口、定时/计数控制接口、并行/串行通信接口等)的课程。
冯·诺依曼体系结构 1. 能把需要的程序和数据送至计算机中。 (输入) 2. 必须具有长期记忆程序、数据、中间结果及最终运 算结果的能力。 (存储) 3. 能够完成各种算术、逻辑运算和数据传送等数据加 工处理的能力。 (运算) 4. 能够根据需要控制程序走向,并能根据指令控制机 器的各部件协调操作。 (控制) 5. 能够按照要求将处理结果输出给用户。(输出) 简单地其工作过程是取指令(代码)→分析指令(译码) →执行指令的不断循环的过程。
微型计算机技术及其应用
——第一章:概述
1
第一章:概述
1. 微机原理课程的内容、学习目的
2. 微型计算机的发展概况 3. 微型计算机系统的基本组成和各部件
功能 4. 微型计算机的应用概况
2
第一章:概述
1. 微机原理课程的内容、学习目的
2. 微型计算机的发展概况
3. 微型计算机系统的基本组成和各部件
第一章:概述——微型计算机系统的 基本组成和各部件功能
各种接口卡
24
第一章:概述——微型计算机系统的 基本组成和各部件功能
主板
25
Байду номын сангаас
第一章:概述——微型计算机系统的 基本组成和各部件功能
主板是机箱中最大的一块集成电路板,在它上面
集成有CPU插座、内存插座、扩展卡插座、输入 输出系统、总线系统、电源接口等。 地址总线(AB) :是用来传送地址信息的信号线。 地址总线的位数决定了CPU可以直接寻址的内存 空间的大小。地址总是从CPU发出的,所以地址 总线是单向的三态总线。 数据总线(DB):数据总线是CPU用来传送数据信 息的信号线。数据总线是双向三态总线。 控制总线(CB):控制总线是用来传送控制信号的 一组总线。控制总线有的为单向,有的为双向或 三态,有的为非三态,取决于具体的信号线。
《微机原理讲》课件
《微机原理讲》PPT课件
通过这份PPT课件,我们将深入介绍微机原理基础、计算机组成与结构、存储 器层次结构、中央处理器、输入输出系统、总线技术和接口等重要知识点。
微机原理基础
数字电路与逻辑门
数字电路是微机原理的基础,逻辑门用于处理 和转换二进制数据。
指令系统
学习指令系统的构成和指令的执行过程,是掌 握微机原理的基础。
4
序和数据。
辅助存储器用于长期保存大量的数据, 如硬盘、光盘、和固态硬盘等。
中央处理器
CPU结构
了解CPU的结构和工作原理,理 解计算机的运算和控制过程。
算术逻辑单元
算术逻辑单元是CPU的核心组件, 负责进行算术和逻辑运算。
控制单元
控制单元是CPU的重要组成部分, 用于控制指令的执行和协调各个 部件的工作。
输入输出系统
1 输入设备
键盘、鼠标、摄像头等设备用于将外部数据输入到计算机中。
2 输出设备
显示器、打印机、扬声器等设备用于将计算机处理后的数据输出。
3 接口卡
接口卡是计算机与外部设备之间的桥梁,用于数据传输和控制。
总线技术和接口
1
总线概述
总线是计算机内部各个部件进行数据传输和通信的公共路径。
2
数据总线
电源
电源为计算机提供稳定的电力供 应,支持各个硬件组件的正常运 行。
存储器层次结构
1
寄存器
寄存器是位于CPU内部的最快的存储设备,
高速缓存
2
用于存储临时数据。
高速缓存作为CPU和主内存之间的缓冲,
加快了数据的访问速度。
3
主内存
主内存是计算机存储体系结构中的最主
要的存储设备,用于存储正在运行的程
通过这份PPT课件,我们将深入介绍微机原理基础、计算机组成与结构、存储 器层次结构、中央处理器、输入输出系统、总线技术和接口等重要知识点。
微机原理基础
数字电路与逻辑门
数字电路是微机原理的基础,逻辑门用于处理 和转换二进制数据。
指令系统
学习指令系统的构成和指令的执行过程,是掌 握微机原理的基础。
4
序和数据。
辅助存储器用于长期保存大量的数据, 如硬盘、光盘、和固态硬盘等。
中央处理器
CPU结构
了解CPU的结构和工作原理,理 解计算机的运算和控制过程。
算术逻辑单元
算术逻辑单元是CPU的核心组件, 负责进行算术和逻辑运算。
控制单元
控制单元是CPU的重要组成部分, 用于控制指令的执行和协调各个 部件的工作。
输入输出系统
1 输入设备
键盘、鼠标、摄像头等设备用于将外部数据输入到计算机中。
2 输出设备
显示器、打印机、扬声器等设备用于将计算机处理后的数据输出。
3 接口卡
接口卡是计算机与外部设备之间的桥梁,用于数据传输和控制。
总线技术和接口
1
总线概述
总线是计算机内部各个部件进行数据传输和通信的公共路径。
2
数据总线
电源
电源为计算机提供稳定的电力供 应,支持各个硬件组件的正常运 行。
存储器层次结构
1
寄存器
寄存器是位于CPU内部的最快的存储设备,
高速缓存
2
用于存储临时数据。
高速缓存作为CPU和主内存之间的缓冲,
加快了数据的访问速度。
3
主内存
主内存是计算机存储体系结构中的最主
要的存储设备,用于存储正在运行的程
《微机原理讲 》课件
01
输标02入题
总线分为数据总线、地址总线和控制总线三类,数据 总线用于传输数据,地址总线用于传输地址信息,控 制总线用于传输控制信号。
03
总线的发展经历了多个阶段,从早期的ISA总线到现 在的PCIe总线,带宽和速度得到了极大的提升。
04
总线的带宽和速度直接影响着微机的性能和数据传输 速率。 Nhomakorabea03
云计算
微机作为云计算基础设施的 重要组成部分,未来将在云 计算领域发挥更加重要的作 用。
工业自动化
随着工业自动化程度的不断 提高,微机在工业自动化领 域的应用前景广阔,如智能 制造、自动化检测等。
感谢您的观看
THANKS
《微机原理讲》ppt课件
目录
• 微机原理概述 • 微机的硬件结构 • 微机的软件系统 • 微机的应用 • 微机的发展趋势
01
微机原理概述
微机的基本概念
微机
微机的组成
微型计算机的简称,是一种体积小、 功耗低、价格便宜、性能适中的计算 机系统。
微机由中央处理器、存储器、输入输 出设备等部分组成,通过总线连接在 一起。
01
汇编语言
汇编语言是一种低级语言,与机 器语言对应,通过助记符表示指 令。
高级语言
02
03
常见高级语言
高级语言是一种更接近自然语言 和数学表达式的编程语言,易于 编写和维护。
常见的高级语言有C、C、Java和 Python等。
数据库管理系统
数据库管理系统定义
数据库管理系统是一种软件,用于创建、使用和维护 数据库。
网络化
随着互联网的普及,微机的网络功能越来 越重要,通过网络连接可以实现远程控制 、数据传输等功能。
输标02入题
总线分为数据总线、地址总线和控制总线三类,数据 总线用于传输数据,地址总线用于传输地址信息,控 制总线用于传输控制信号。
03
总线的发展经历了多个阶段,从早期的ISA总线到现 在的PCIe总线,带宽和速度得到了极大的提升。
04
总线的带宽和速度直接影响着微机的性能和数据传输 速率。 Nhomakorabea03
云计算
微机作为云计算基础设施的 重要组成部分,未来将在云 计算领域发挥更加重要的作 用。
工业自动化
随着工业自动化程度的不断 提高,微机在工业自动化领 域的应用前景广阔,如智能 制造、自动化检测等。
感谢您的观看
THANKS
《微机原理讲》ppt课件
目录
• 微机原理概述 • 微机的硬件结构 • 微机的软件系统 • 微机的应用 • 微机的发展趋势
01
微机原理概述
微机的基本概念
微机
微机的组成
微型计算机的简称,是一种体积小、 功耗低、价格便宜、性能适中的计算 机系统。
微机由中央处理器、存储器、输入输 出设备等部分组成,通过总线连接在 一起。
01
汇编语言
汇编语言是一种低级语言,与机 器语言对应,通过助记符表示指 令。
高级语言
02
03
常见高级语言
高级语言是一种更接近自然语言 和数学表达式的编程语言,易于 编写和维护。
常见的高级语言有C、C、Java和 Python等。
数据库管理系统
数据库管理系统定义
数据库管理系统是一种软件,用于创建、使用和维护 数据库。
网络化
随着互联网的普及,微机的网络功能越来 越重要,通过网络连接可以实现远程控制 、数据传输等功能。
微机原理课件ch07
Q(C,D)
2021/1/10
ENDM
第21页
过程调用和宏调用的区别
在处理时间上不同。 用宏指令得到的目标代码长,占内存空间大,而
且宏调用的次数越多,所占内存空间越大;用过 程占内存空间小,而且不会随调用次数的增加而 增加,但执行时间长。 传递参数的方式不同
2021/1/10
第22页
2021/1/10
PTR运算符
格式: 类型 PTR 表达式
例12:INC WORD PTR [BX]
THIS操作符
格式: THIS 类型(或属性)
例13:FIRST
EQU THIS BYTE
SECOND
DW 100 DUP (?)
2021/1/10
第27页
第19页
子程序调用和宏调用的区别
子程序调用工作方式
主程序
X←A,y←B CALL Q
x←C,y←D CALL Q
子程序Q(x,y) 执行时调用
Q: . . .
RET
2021/1/10
第20页
子程序调用和宏调用的区别
宏调用工作方式
主程序
子程序Q(x,y)
汇编时展开
Q A,B
Q(A,B)
Q C,D Q MACRO x,y
2021/1/10
第10页
伪指令
符号定义语句
等值语句
格式:符号名 EQU 表达式
例1: ⑴ PORT
EQU
⑵ BUFF
EQU
⑶ MEM
EQU
⑷ COUNT
EQU
⑸ ABC
EQU
1234 PORT+58 DS:[BP+20H] CX AAA
等号语句
微机原理7.ppt
高位字节 放 高地址单元 低位字节 放 低地址单元
▪以最低字节所在的内存地址作为 数据的存储地址。
内存中的字节、字和双字
内存地址
内存单元
…
1003H 0001 0002
1002H 0003 0004
1001H 1010 0110
1000H 1100 1011
…
内存单元
内存地址 … 1003H 1 2 1002H 3 4 1001H A 6 1000H C B
…
3)内存操作
读:将内存单元的内容取入CPU,原
单元内容不改变;
写:CPU将信息放入内存单元,单元
中原内容被覆盖;
… 1003H 1 2 1002H 3 4
…
3. 输入/输出接口
I/O接口,是CPU与外设间的桥梁.
CPU
I/O
接口
外设
完成信号变换、数据缓冲、联络控制等工作 较简单的I/O接口电路与主板一体 较复杂的I/O接口电路制成独立的电路板(接口卡)
数据总线的条数决定一次可最多传送数据
的宽度。
地址总线AB
C 8 根存 P 16储器根
→I/O
接
→口
一输次传送I/8O位 一入 设 备次传送接口16位
输 出 设 备
U 32 根 → 一次传送 32位
64 根 → 一次传送 64位
数据总线DB 控制总线CB
控制总线 CB:传送各种控制信号
有的是CPU发出,如读、写控制信号; 有的是发向CPU,如外设发出的中断申请信号。
微机原理 及 应用
主讲 茹媛
计算机学院 网络与工程系
教材: 《微机原理与接口技术》
吉海彦 机械出版社 ISBN 978-7-111-21547-9 参考书: 《IBM PC 汇编语言程序设计》
▪以最低字节所在的内存地址作为 数据的存储地址。
内存中的字节、字和双字
内存地址
内存单元
…
1003H 0001 0002
1002H 0003 0004
1001H 1010 0110
1000H 1100 1011
…
内存单元
内存地址 … 1003H 1 2 1002H 3 4 1001H A 6 1000H C B
…
3)内存操作
读:将内存单元的内容取入CPU,原
单元内容不改变;
写:CPU将信息放入内存单元,单元
中原内容被覆盖;
… 1003H 1 2 1002H 3 4
…
3. 输入/输出接口
I/O接口,是CPU与外设间的桥梁.
CPU
I/O
接口
外设
完成信号变换、数据缓冲、联络控制等工作 较简单的I/O接口电路与主板一体 较复杂的I/O接口电路制成独立的电路板(接口卡)
数据总线的条数决定一次可最多传送数据
的宽度。
地址总线AB
C 8 根存 P 16储器根
→I/O
接
→口
一输次传送I/8O位 一入 设 备次传送接口16位
输 出 设 备
U 32 根 → 一次传送 32位
64 根 → 一次传送 64位
数据总线DB 控制总线CB
控制总线 CB:传送各种控制信号
有的是CPU发出,如读、写控制信号; 有的是发向CPU,如外设发出的中断申请信号。
微机原理 及 应用
主讲 茹媛
计算机学院 网络与工程系
教材: 《微机原理与接口技术》
吉海彦 机械出版社 ISBN 978-7-111-21547-9 参考书: 《IBM PC 汇编语言程序设计》
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
1) 利用寄存器传递参数 2) 利用存储器传递参数 3) 利用堆栈传递参数
1) 利用寄存器传递参数 上例5-7
2) 利用存储器传递参数
• 数据放在数据段中 例5-8. 数据段定义两个数组,编程实现数组段分别求和 (不计溢出)。P182~183
DATA DATA
SEGMENT ARY1 DW 100 DUP(?) SUM1 DW ? ARY2 DW 100 DUP(?) SUM2 DW ?
四、子程序结构
• 将反复进行的操作编成一个子程序,这样,只需编写一 次,测试一次便可以多次重复使用。从而提高开发的效 率。
• 实现模块化的重要手段。使程序便于开发、测试和维护。
主程序 转向子程序
子程序 SUB1 PROC
CALL SUB1 断点地址
返回主程序
RET
子程序的设计方法
1. 功能分析与说明
ENDS
START: PUSH SUB PUSH MOV MOV
DS AX,AX AX AX,DATA DS,AX
STACK SEGMENT STACK SA DW 50 DUP(?)
TOP EQU LENGTH SA
MOV MOV
AX,STACK SS,AX
STACK ENDS
MOV SP,TOP
DATA ENDS
主程序: LEA BX,BUFFER1 PUSH [BX] PUSH [BX+2] PUSH [BX+4] CALL SUBR MOV AX, BX
子程序: SUBR: PUSH
MOV MOV
SP-A BPL SP-9 BPH SP-8 IPL SP-7 IPH SP-6 NL
MOV MOV … POP RET
;调用其它子程序:无
BCD2BIN
PROC NEAR(FAR)
PUSH CX
MOV CH,AL
AND CH,0FH
MOV CL,4
SHR AL,CL ;/16
MOV CL,10
MUL CL
;*10
ADD AL,CH ;+低位
POP CX
RET
ENDP
2. 参数传递技术
• 入口参数与出口参数 • 参数传递方法
CODE SEGMENT ASSUME CS: CODE,DS:DATA,SS:STACK
MAIN PROC FAR
✓ TOP EQU SIZE SA
✓ TOP LABEL WORD
MAIN SUM L1:
SUM CODE
LEA MOV CALL LEA MOV CALL RET ENDP PROC XOR ADD INC INC LOOP MOV RET ENDP ENDS END
MAIN PROC FAR
START: PUSH DS
SUB AX,AX
PUSH AX
MOV AX,MDATA
MOV DS,AX
MOV AX,MSTACK
MOV SS,AX
MOV SP,OFFSET TOP
MOV AX,OFFSET ARY1 PUSH AX
SP-10 F SP-E BP
MOV AX,SIZE ARY1
SUM1 DW ?
ARY2 DB 100 DUP(?)
;数组2
SUM2 DW ?
MDATA ENDS
MSTACK SEGMENT STACK
SB DW 100 DUP(?)
TOP LABEL WORD
MSTACK ENDS
MCODE SEGMENT
ASSUME CS: MCODE,DS:MDATA,SS:MSTACK
MCODE ENDS
PCODE SEGMENT
ASSUME CS: PCODE,DS:MDATA,SS:MSTACK
PADD PROC FAR
PUSH BX
PUSH CX
PUSH BP
MOV BP,SP
PUSHF
MOV MOV MOV NEXT: ADD DAA MOV MOV ADC DAA MOV MOV INC LOOP MOV POPF POP POP POP RET PADD ENDP PCODE ENDS END START
SP-5 NH
SP-4 BUFBL
SP-3 BUFBH
SP-2 BUFAL
SP-1 BUFAH
SP
BP BP,SP CX,[BP+4] DI, [BP+6] SI, [BP+8]
BP 6
例5-9.利用堆栈编程实现十进制数组求和,段间调用。
MDATA SEGMENT
ARY1 DB 20 DUP(?) ;数组1
主控
输入 数据处理 输出
*子程序的名称,功能及性能 *子程序中用到的寄存器和存储单元 *子程序的入口参数,出口参数 *子程序中调用其它子程序的名称
例5-7 一个子程序
;名称:BCD2BIN
BCD2BIN
;功能:一个字节的BCD码转换成 二进制数
;所用寄存器:CX
;入口参数:AL中存两位BCD数
;出口参数:AL存二进制数
MOV SI, CS:[BX+2]
SP-2 BPL SP-1 BPH
MOV DI, CS:[BX+4]
ADD BX,6 MOV [BP+2],BX
SP IPL IPH
… POP BP RET
SUBR ENDP
3) 利用堆栈传递参数
DATA SEGMENT BUFFER1 DW BUFA BUFFER2 DW BUFB BUFL DW N
SP-C CX
PUSH AX
CALL FAR PTR PADD MOV AX,OFFSET ARY2
SP-A BX SP-8 IP
PUSH MOV PUSH CALL
AX AX,SIZE ARY2
AX
FAR PTR PADD
SP-6 SP-4 SP-2
CSAIN ENDP
SI,ARY1
;数组1地址→SI
CX,LENGTH ARY1
SUM
;数组1求和
SI,ARY2
;数组2地址→SI
CX,LENGTH ARY2
SUM
;数组2求和
NEAR
AX,AX
;AX清0
AX,WORD PTR[SI]
SI
SI
L1
WORD PTR [SI],AX
START
2) 利用存储器传递参数 CALL SUBR
• 数据放在数据段中
DW BUFL
• 数据放在代码段中
DW BUFA
– 获取参数的方法:
• 获得返回地址 • 根据返回地址实现参数传递 • 修改返回地址
DW BUFB
MOV AX, DX
…
MOV BX,
SUBR PROC
PUSH BP
MOV BP,SP
[SP+2]
MOV BX, [BP+2]
MOV CX, CS: [BX]
1) 利用寄存器传递参数 上例5-7
2) 利用存储器传递参数
• 数据放在数据段中 例5-8. 数据段定义两个数组,编程实现数组段分别求和 (不计溢出)。P182~183
DATA DATA
SEGMENT ARY1 DW 100 DUP(?) SUM1 DW ? ARY2 DW 100 DUP(?) SUM2 DW ?
四、子程序结构
• 将反复进行的操作编成一个子程序,这样,只需编写一 次,测试一次便可以多次重复使用。从而提高开发的效 率。
• 实现模块化的重要手段。使程序便于开发、测试和维护。
主程序 转向子程序
子程序 SUB1 PROC
CALL SUB1 断点地址
返回主程序
RET
子程序的设计方法
1. 功能分析与说明
ENDS
START: PUSH SUB PUSH MOV MOV
DS AX,AX AX AX,DATA DS,AX
STACK SEGMENT STACK SA DW 50 DUP(?)
TOP EQU LENGTH SA
MOV MOV
AX,STACK SS,AX
STACK ENDS
MOV SP,TOP
DATA ENDS
主程序: LEA BX,BUFFER1 PUSH [BX] PUSH [BX+2] PUSH [BX+4] CALL SUBR MOV AX, BX
子程序: SUBR: PUSH
MOV MOV
SP-A BPL SP-9 BPH SP-8 IPL SP-7 IPH SP-6 NL
MOV MOV … POP RET
;调用其它子程序:无
BCD2BIN
PROC NEAR(FAR)
PUSH CX
MOV CH,AL
AND CH,0FH
MOV CL,4
SHR AL,CL ;/16
MOV CL,10
MUL CL
;*10
ADD AL,CH ;+低位
POP CX
RET
ENDP
2. 参数传递技术
• 入口参数与出口参数 • 参数传递方法
CODE SEGMENT ASSUME CS: CODE,DS:DATA,SS:STACK
MAIN PROC FAR
✓ TOP EQU SIZE SA
✓ TOP LABEL WORD
MAIN SUM L1:
SUM CODE
LEA MOV CALL LEA MOV CALL RET ENDP PROC XOR ADD INC INC LOOP MOV RET ENDP ENDS END
MAIN PROC FAR
START: PUSH DS
SUB AX,AX
PUSH AX
MOV AX,MDATA
MOV DS,AX
MOV AX,MSTACK
MOV SS,AX
MOV SP,OFFSET TOP
MOV AX,OFFSET ARY1 PUSH AX
SP-10 F SP-E BP
MOV AX,SIZE ARY1
SUM1 DW ?
ARY2 DB 100 DUP(?)
;数组2
SUM2 DW ?
MDATA ENDS
MSTACK SEGMENT STACK
SB DW 100 DUP(?)
TOP LABEL WORD
MSTACK ENDS
MCODE SEGMENT
ASSUME CS: MCODE,DS:MDATA,SS:MSTACK
MCODE ENDS
PCODE SEGMENT
ASSUME CS: PCODE,DS:MDATA,SS:MSTACK
PADD PROC FAR
PUSH BX
PUSH CX
PUSH BP
MOV BP,SP
PUSHF
MOV MOV MOV NEXT: ADD DAA MOV MOV ADC DAA MOV MOV INC LOOP MOV POPF POP POP POP RET PADD ENDP PCODE ENDS END START
SP-5 NH
SP-4 BUFBL
SP-3 BUFBH
SP-2 BUFAL
SP-1 BUFAH
SP
BP BP,SP CX,[BP+4] DI, [BP+6] SI, [BP+8]
BP 6
例5-9.利用堆栈编程实现十进制数组求和,段间调用。
MDATA SEGMENT
ARY1 DB 20 DUP(?) ;数组1
主控
输入 数据处理 输出
*子程序的名称,功能及性能 *子程序中用到的寄存器和存储单元 *子程序的入口参数,出口参数 *子程序中调用其它子程序的名称
例5-7 一个子程序
;名称:BCD2BIN
BCD2BIN
;功能:一个字节的BCD码转换成 二进制数
;所用寄存器:CX
;入口参数:AL中存两位BCD数
;出口参数:AL存二进制数
MOV SI, CS:[BX+2]
SP-2 BPL SP-1 BPH
MOV DI, CS:[BX+4]
ADD BX,6 MOV [BP+2],BX
SP IPL IPH
… POP BP RET
SUBR ENDP
3) 利用堆栈传递参数
DATA SEGMENT BUFFER1 DW BUFA BUFFER2 DW BUFB BUFL DW N
SP-C CX
PUSH AX
CALL FAR PTR PADD MOV AX,OFFSET ARY2
SP-A BX SP-8 IP
PUSH MOV PUSH CALL
AX AX,SIZE ARY2
AX
FAR PTR PADD
SP-6 SP-4 SP-2
CSAIN ENDP
SI,ARY1
;数组1地址→SI
CX,LENGTH ARY1
SUM
;数组1求和
SI,ARY2
;数组2地址→SI
CX,LENGTH ARY2
SUM
;数组2求和
NEAR
AX,AX
;AX清0
AX,WORD PTR[SI]
SI
SI
L1
WORD PTR [SI],AX
START
2) 利用存储器传递参数 CALL SUBR
• 数据放在数据段中
DW BUFL
• 数据放在代码段中
DW BUFA
– 获取参数的方法:
• 获得返回地址 • 根据返回地址实现参数传递 • 修改返回地址
DW BUFB
MOV AX, DX
…
MOV BX,
SUBR PROC
PUSH BP
MOV BP,SP
[SP+2]
MOV BX, [BP+2]
MOV CX, CS: [BX]