第14讲 汇编程序的基本结构(一)
单片机

1.1 微型计算机的基础知识概述电子计算机是20世纪最重要的科学技术成就之一。
目前计算机已渗透到国民经济和社会生活的各个领域,极大地改变着人们的工作方式和生活方式,并成为推动社会发展的巨大生产力。
本节属于复习内容,主要对微型计算机的基础知识进行简单的论述。
1.1.1 微型计算机的基本结构微型计算机由硬件和软件两大部分组成。
硬件是指那些为组成计算机而有机联系的电子、电磁、机械、光学的元件、部件或装置的总和,它是有形的物理实体。
软件是相对于硬件而言的,从狭义的角度看,软件包括计算机运行所需要的各种程序;而从广义的角度看,软件还包括手册、说明书和有关资料。
1.微型计算机的硬件结构微型计算机在硬件上由运算器、控制器、存储器、输入设备和输出设备五大部分组成,如图1-1所示。
运算器是计算机处理信息的主要部分;控制器控制计算机各部件自动、协调一致地工作;存储器是存放数据与程序的部件;输入设备用来输入数据与程序,常用的输入设备有键盘、光电输入机等;输出设备将计算机的处理结果用数字、图形等形式表示出来,常用的输出设备有显示终端、数码管、打印机、绘图仪等。
通常把运算器、控制器、存储器这三部分称为计算机的主机,而输入设备、输出设备则称为计算机的外围设备(简称“外设”)。
由于运算器、控制器是计算机处理信息的关键部件,所以常将它们合称为中央处理单元CPU(Central Process Unit)。
(1)微处理器CPU微处理器是利用微电子技术将计算机的核心部件(运算器和控制器)集中做在一块集成电路上而形成的一个独立芯片。
它具有解释指令、执行指令及与外界交换数据的能力。
该芯片称为微处理器或微处理机(Microprocessor),也称CPU。
目前,无论哪种CPU,其内部基本组成总是大同小异的,包括三部分:运算器、控制器、内部寄存器阵列(工作寄存器组)。
(2)微型计算机微型计算机由CPU、存储器、输入/输出(I/O)口电路构成,芯片之间通过总线(Bus)连接,其结构如图1-2所示。
C程序设计(第四版)

( int
{ int z; if (x>y) z=x; else z=y; return (z); }
x, int 声明部分
执行部分
y)
合法是空函数:void dump( ) { }
2015-4-2 山东大学管理学院 戚桂杰 10
1.3 简单的C程序介绍
(4)一个C程序总是从main函数开始执行的。
2015-4-2 山东大学管理学院 戚桂杰 17
2.2 简单算法举例
1 1 1 1 1 1…… 1 1 1 1 1 1 例2. 4 求 2 23 34 4 9999100 100
算法如下: S1:sign=1 S2:sum=1 S3:deno=2 S4:sign=(1)×sign S5:term=sign×(1/deno) S6: sum=sum+term S7:deno=deno+1 S8:若deno<=100返回S4;否则算法结束。
C程序设计(第四版) 谭浩强 著
山东大学管理学院 戚桂杰
目录
• • • • • • • • • • • 程序设计和C语言 算法——程序的灵魂 最简单的C程序设计——顺序程序设计 选择结构程序设计 循环结构程序设计 利用数组处理批量数据 利用函数实现模块化程序设计 善于利用指针 用户自己建立数据类型 对文件的输入输出 常见错误分析
2015-4-2
山东大学管理学院 戚桂杰
13
第2章 算法——程序的灵魂
• 程序=数据结构+算法+程序设计方法+语言工具和环境
• 数据结构:对数据的描述,即在程序中指定数 据的类型和数据的组织形式。 • 算法:对操作的描述,即操作步骤。 2.1 什么是算法 • 为解决一个问题而采取的方法和步骤。 • 计算机算法分为数值运算算法、非数值运算算 法
汇编语言程序设计(第四版)【课后答案】

汇编语言程序设计第四版【课后习题答案】第1章汇编语言基础知识〔习题1.1〕简述计算机系统的硬件组成及各部分作用。
〔解答〕CPU:包括运算器、控制器和寄存器组。
运算器执行所有的算术和逻辑运算;控制器负责把指指令逐条从存储器中取出,经译码分析后向机器发出各种控制命令,并正确完成程序所要求的功能;寄存器组为处理单元提供所需要的数据。
存储器:是计算机的记忆部件,它用来存放程序以及程序中所涉及的数据。
外部设备:实现人机交换和机间的通信。
〔习题1.2〕明确下列概念或符号:主存和辅存,RAM和ROM,存储器地址和I/O端口,KB、MB、GB和TB。
〔解答〕主存又称内存是主存储器的简称,主存储器存放当前正在执行的程序和使用的数据,CPU可以直接存取,它由半导体存储器芯片构成其成本高、容量小、但速度快。
辅存是辅助存储器的简称,辅存可用来长期保存大量程序和数据,CPU需要通过I/O接口访问,它由磁盘或光盘构成,其成本低、容量大,但速度慢。
RAM是随机存取存储器的英语简写,由于CPU可以从RAM读信息,也可以向RAM写入信息,所以RAM也被称为读写存储器,RAM型半导体存储器可以按地址随机读写,但这类存储器在断电后不能保存信息;而ROM中的信息只能被读出,不能被修改,ROM型半导体通常只能被读出,但这类存储器断电后能保存信息。
存储器由大量存储单元组成。
为了区别每个单元,我们将它们编号,于是,每个存储单元就有了一个存储地址,I/O接口是由一组寄存器组成,为了区别它们,各个寄存器进行了编号,形成I/O地址,通常称做I/O端口。
KB是千字节、MB是兆字节、GB是吉字节和TB是太字节,它们都是表示存储器存储单元的单位。
〔习题1.3〕什么是汇编语言源程序、汇编程序、目标程序?〔解答〕用汇编语言书写的程序就称为汇编语言源程序;完成汇编工作的程序就是汇编程序;由汇编程序编译通过的程序就是目标程序。
〔习题1.4〕汇编语言与高级语言相比有什么优缺点?〔解答〕汇编语言与高级语言相比的优点:由于汇编语言本质就是机器语言,它可以直接地、有效地控制计算机硬件,因而容易产生运行速度快,指令序列短小的高效目标程序,可以直接控制计算机硬件部件,可以编写在“时间”和“空间”两方面最有效的程序。
重庆邮电大学汇编语言程序设计-01-课程介绍与IA-32处理器结构

取指令 译码 取操作数 执行 存储
20
IA-32指令的执行
简化的CPU内部结构:不同的指令对应不同的流程
数据总线
指令缓存
指令指针
内存 (代码) (数据)
指令译码器 控制单元 寄存器 ALU 数据缓存
浮点运算单元
21
IA-32指令的执行
指令的顺序执行所带来的困扰
硬件设备的空闲:处理器在执行下一条指令前的等待
EFLAGS
EIP
30
IA-32处理器的体系结构
除基本寄存器外,还有系统寄存器
中断描述符表寄存器(IDTR),48位
高32位线性地址 + 低16位的界限
全局描述符表寄存器(GDTR),48位
高32位线形地址 + 低16位的界限
局部描述符表寄存器(LDTR),16位 任务寄存器(TR),16位
Virtual-8086 Mode:虚拟8086模式,在保护模式下 处理器可以安全的在多任务系统中执行时地址模式的软 件,而不会影响其它运行的程序,20位地址线宽度。
IA-32e Mode:仅存在于IntelEM64T处理器上。 System Management Mode。
26
IA-32处理器的体系结构
E T EMP T SMP E
汇编语言程序设计 - 朱明
32
EAX
普通算术运算和数据传输
EBX
ESP:扩展堆栈指针寄存器,极少用于
ECX EDX
普通的算术运算和数据传输
ESI和EDI:扩展源指针和扩展目的指针,
EBP ESP
用于高速内存数据传输指令使用
ESI
特别说明,在IA-32e模式下均扩展为64
EDI
课程名称 微机原理与汇编语言 性质 必修

2007 至2008 学年第一学期
教学日历
课程名称微机原理与汇编语言性质必修
总学时48 讲课28 实验其它上机20
授课班级电子05-1,2 学生人数
任课教师李菊职称副教授
所在院(系、部) 机电学院电子系
系(教研室)主任签字_________________________
教材名称:IBM-PC汇编语言程序设计作者:沈美明
出版单位:清华大学出版社出版时间:2001
中国石油大学(北京)教务处制
填写说明:
1.每上一次课填写一行,节次填写数字“1-5”,一天共分5大节课,例如:一周上三次课填写三行,并在周学时栏合并单元格填写“6”,周一第3、4节,在节次栏中填写2。
2.教学日历一经制订,不应出现大的变动,但允许主讲教师在完成课程教学大纲规定的教
学要求前提下,进行必要的调整,以适应不断出现的新情况。
如有变动,须经课程所属系主任(教研室主任)批准,并报院(系、部)办公室备查。
3.上机、大作业、课堂讨论、外出参观、考试等如占课内学时,在“备注”栏内注明。
4.教学日历由教师自存一份、课程所属系存一份,在每学期开学后第一周内送课程所属院(系、部)办公室并发一份电子版给课程所属院(系、部)办公室;有实验和上机学时的须发一份电子版的给实践科sjk@。
汇编语言(微机)第三章

汇编语言源程序的格式
一般情况下,定位类型、组合类型和类别说明可以 不用。 注意:SEGMENT和ENDS语句必须成对使用。 例:定义一数据段DATA
DATA SEGMENT A DB '1234' B DW 12H
DATA ENDS
22
汇编语言源程序的格式
(2)偏移地址定位语句 ORG 格式:ORG 数值表达式 功能:指定在它之后的程序段或数据块所存放的起始地 址的偏移量。
SUB1: ?
RESU: ?
?
31
汇编语言源程序的格式
④ 用DUP重复因子初始化一个数据区
格式:N DUP (表达式)
?、数值、
数值表达式
重复次数 重复装入的内容
字符等
例1: DA1 DB 2 DUP(0) DA2 DB 2 DUP(‘AB’) DA3 DW 2 DUP(1)
DA1
00
00
DA2
41
LOP: ADD AL,[BX] ADC AH,0 INC BX LOOP LOP MOV [DI] ,AX MOV AH ,4CH INT 21H
CODE ENDS END START
9
汇编语言源程序的格式
汇编语言源程序的格式
二、指令性语句 [标号:] 操作码 [操作数] [;注释项]
操作码:指明操作的性质,说明计算机要执行的具体操 作。用助记符表示。
第三章:8086汇编语言程序设计
主讲教师:范新民
整理ppt
1
8086汇编语言程序设计
1 3.2.1 汇编语言源程序的格式 2 3.2.2 常量、标识符和表达式 3 3.2.3 指示性语句 4 3.2.4 指令性语句 5 3.2.5 宏指令
单片机原理课程教案
(一)课程教学目的和要求随着科学技术的不断进步,计算机在社会各个领域中的应用也不断得以发展,本课程是信息类基础课程之一,是一门学生学习掌握计算机硬件知识和汇编语言程序设计的入门课程。
通过本课程的学习使学生从理论和实践两方面掌握单片机的基本结构、工作原理、汇编语言程序设计方法、接口电路及单片机应用系统的设计方法,以求达到初步的单片机软硬件设计开发能力。
并为以后从事电子控制类的设计奠定理论基础和实践能力。
《单片机原理及应用》是信息类专业的一门重要专业基础必修课,是一门理论与实际紧密结合并对学生进行工程训练的课程。
通过本课程的教学,学生应掌握51系列单片机CPU、定时/计数器、存储器、串行通信、中断系统、I/O口的硬件结构,能用汇编语言进行程序设计,具备应用单片机知识分析解决工程实际问题,设计较复杂的单片机应用系统能力。
(二)课程教学重点和难点1、重点:硬件结构;指令系统;系统扩展和应用;外围接口技术。
2、难点:指令系统;外围接口技术。
(三)教学方法理论与实验相结合(四)课时安排总课时:64课时,其中:理论课时48,实验课时16。
(五)考核方式本课程的考核采取平时的形成性考核和课程结束时的笔试闭卷考试相结合的考核办法。
平时的考核主要有三个方面:课堂、课外、实验。
课堂考核依据出勤率、听课态度、课堂讨论表现等;课外考核主要依据作业、平时测试、课外的创新和发明等;实验考核依据实验完成的质量和数量等情况来评定。
(六)参考教材刘湘涛.江世明编著《单片机原理与应用》.电子工业出版社. 2006.第一章单片机基础知识教研室:计算机教研室教师姓名:申寿云教学过程1、问题牵引、导入新课(1)单片机是什么?它的主要特点和应用的领域。
(2)计算机中数据有哪些表示?二进制、八进制、十进制、十六进制;原码、反码、补码;ASCII码、BCD码。
2、课程内容本章的主要知识点有:知识点1:单片机的概念。
知识点2:单片机主流机型。
知识点3:80C51系列简介。
《微机原理与接口技术》教学大纲
《微机原理与接口技术》教学大纲一、课程编号:二、课程名称:微机原理与接口技术 64学时Microcomputer Principles and Interface Technology三、先修课程:数字电路与逻辑设计、计算机文化基础四、适用专业:五、课程教学目的本课程是通信、电子、信息工程、自动化及相关专业的基础课。
通过本课程的学习,使学生掌握微型计算机的内部结构和工作原理,具备用汇编语言进行程序设计的能力,同时能对基本的微机硬件接口电路进行分析与设计。
六、课程教学基本要求1.掌握微型计算机的基本组成和工作原理,了解整机的工作流程;2.掌握8088/8086微处理器(CPU)的基本结构;了解指令的寻址方式,熟悉8088/8086 CPU的指令系统;3.掌握宏汇编语言程序设计的基本方法;4.了解微机中总线的判决和握手技术及总线分类;5.了解半导体存储器的分类,掌握RAM及ROM的内部组成、工作原理及与CPU的接口技术;6.熟悉中断原理、中断方式及中断响应的过程;7.掌握微型计算机基本I/O接口技术;熟悉常用接口(包括定时/计数、并行通信、串行通信等)芯片的工作原理、工作方式及使用方法。
七、教学内容及学时分配1.概述6学时微型计算机的发展、特点;计算机中数的表示与编码;微型计算机的组成及工作原理。
2.8088/8086微处理器8学时8088/8086CPU的内部结构及工作原理;8088/8086CPU的外部特性(包括引脚信号、工作模式等);8088/8086CPU最小模式下总线操作时序。
3.8088/8086微处理器指令系统9学时寻址方式;*** 8088/8086CPU指令系统;4.8088/8086宏汇编语言程序设计9学时汇编语言源程序格式;汇编语言语句格式、伪指令语句;常用DOS功能调用;基本结构程序设计方法;*** 宏汇编语言程序设计。
5.微机总线4学时总线概述;8088/8086最大模式下总线信号的形成;总线判决和握手技术;微机系统总线分类(ISA、EISA、PCI等)。
单片机原理及应用_第二版_课后习题答案
第1章单片机概述参考答案1.答:微控制器,嵌入式控制器2.答:CPU、存储器、I/O口、总线3.答:C4.答:B5.答:微处理器、微处理机和CPU它们都是中央处理器的不同称谓,微处理器芯片本身不是计算机。
而微计算机、单片机它们都是一个完整的计算机系统,单片机是集成在一个芯片上的用于测控目的的单片微计算机。
嵌入式处理器一般意义上讲,是指嵌入系统的单片机、DSP、嵌入式微处理器。
目前多把嵌入式处理器多指嵌入式微处理器,例如ARM7、ARM9等。
嵌入式微处理器相当于通用计算机中的CPU。
与单片机相比,单片机本身(或稍加扩展)就是一个小的计算机系统,可独立运行,具有完整的功能。
而嵌入式微处理器仅仅相当于单片机中的中央处理器。
为了满足嵌入式应用的特殊要求,嵌入式微处理器虽然在功能上和标准微处理器基本是一样的,但在工作温度、抗电磁干扰、可靠性等方面一般都做了各种增强。
6.答:MCS-51系列单片机的基本型芯片分别:8031、8051和8071。
它们的差别是在片内程序存储器上。
8031无片内程序存储器、8051片内有4K字节的程序存储器ROM,而8751片内有集成有4K字节的程序存储器EPROM。
7.答:因为MCS-51系列单片机中的“MCS”是Intel公司生产的单片机的系列符号,而51系列单片机是指世界各个厂家生产的所有与8051的内核结构、指令系统兼容的单片机。
8.答:相当于MCS-51系列中的87C51,只不过是AT89S51芯片内的4K字节Flash 存储器取代了87C51片内的4K字节的EPROM。
9.单片机体积小、价格低且易于掌握和普及,很容易嵌入到各种通用目的的系统中,实现各种方式的检测和控制。
单片机在嵌入式处理器市场占有率最高,最大特点是价格低,体积小。
DSP是一种非常擅长于高速实现各种数字信号处理运算(如数字滤波、FFT、频谱分析等)的嵌入式处理器。
由于对其硬件结构和指令进行了特殊设计,使其能够高速完成各种复杂的数字信号处理算法。
Unit06- MVS的基本IO功能
1. 定义数据集 2. 定义 区域 定义I/O区域 3. 打开数据集 4. 读入数据 5. 写出数据 6. 释放数据集
Concepts
© Copyright HUST 2008. All rights reserved.
Page 11 of 41
OS/390汇编语言进阶
单元: MVS的基本I/O功能 小节: 定义数据集
DCB宏指令 宏指令
处理I/O的汇编语言程序必须向汇编 程序提供需要处理的数据集的信息。 由DCB(Data Control Block)宏指 令定义的顺序数据集也需要提供相 关信息 。 为了处理数据集,DCB宏指令生成 一大块固定的区域。
RECORD1
DATA SET
GET
DCB
这块固定的区域是数据项(或参数) 的集合,用于控制正在处理的数据 集。
OS/390汇编语言进阶
单元: MVS的基本I/O功能
单元介绍
大多数汇编语言程序的主要目的是输入数据,处理它们,然后将结果打印出来。 MVS提供了大量用于输入输出功能的指令及选项,帮助你完成所需I/O。 本单元将讲述这些功能的一个子集,以及用于顺序读入80字节记录格式数据、顺序 输出133字节记录格式数据的I/O宏指令。 这些宏可以使用户从创建的数据集中读取数据,并将它们打印出来。
Page 14 of 41
OS/390汇编语言进阶
单元: MVS的基本I/O功能 小节: 定义数据集
DCB宏指令(续) 宏指令( 宏指令
OUTFILE DCB DDNAME=OUT,RECFM=FBA, LRECL=133,BLKSIZE=6650, DSORG=PS,MACRF=PM X
• 其格式为:数据集名 DCB 关键字参数 • 关键字参数来描述数据集的属性。关键字参数间用逗号隔开, 参数的次序可任意排列。 • 关键字参数的写法为: • 关键字名=关键字值 • 常用的关键字参数及值的格式: • DSORG=PS/PSU, MACRF=GM/PM [,DDNAME=DD语句标号] [,LRECL=n] [,BLKSIZE=n] [,EODAD=标号 [RECFM=FB/FBA][…] • *注:方括号[ ]表示可选参数。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
第十四讲 汇编程序的基本结构(一)
§3-8 汇编语言程序的基本结构及应用举例
程序编写做到:
占用存储空间少;
运行时间短;
程序的编制、调试及排错所需时间短;
结构清晰,易读、易于移植。
按结构化程序设计思想,任何复杂程序都可由顺序结构、分支结构、循环结构等构成。
如图1所示。
顺序结构 分支结构
N Y
图 (a) 图 (b)
循环结构
入口 入口
Y
条件满足否? 处理
N
处理 修改条件
修改条件 条件满足否?
N
Y
出口 出口
图 (c)
图1 常用程序结构
B
A
入口
C
出口
入口
分支1
分支2
出 口
一、顺序程序举例
例1、设在外RAM的60H单元存有1个字节代码,要求将其分解成两个4位字段,高4位存入原
单元的低4位,其低4位存入61H单元的低4位,且要求这两个单元的高4位均为0,试编制完
整程序。
解: 字节分解:
60H ×××× □□□□
60H 0 0 0 0 ×××× 0 0 0 0 □□□□ 61H
核心指令 ANL
ORL 1000H
MODE:MOV R0,#60H
MOVX A,@R0
MOV B,A
ANL A,#0F0H
SWAP A
MOVX @R0,A
ANL B,#0FH
MOV A,B
INC R0
MOVX @R0,A
END
二、分支结构与分支程序设计
结构:根据不同的条件,进行相应的处理。
通常用条件转移指令形成简单分支结构。
如: 判(A) = Z 或 NZ ,转移
判(CY)= 1 或 0 ,转移
判(bit)=1 或 0 ,转移
CJNE 比较不相等转移
例3、设a存放在累加器A中,b存放在寄存器B中,要求按下式计算Y值,并将结果Y存于累
加器A 中,试编写程序。
a-b (a≥0)
Y =
a+b (a < 0)
解:本题关键是判a是正数,还是负数;由ACC7便知。
ORG 1000H
BR: JB ACC7,MINUS
CLR C
SUBB A,B
SJMP DONE
MINUS: ADD A,B
DONE: SJMP $
END
例4、设有两个16位无符号数NA,NB分别存放在8031单片机内部RAM的40H、41H及50H、51H
单元中,当NA > NB时,将内部RAM的42H单元清0;否则,将该单元置成全1,试编程。
解法I:因为无16位数的比较指令,所以,只能用8位数的比较指令。
(画出流程框图)
ORG 2000H
CMP:MOV A,50H
CJNE A,40H,CMP1
MOV A,51H
CJNE A,41H,CMP1
SJMP NHIGHE
CMP1:JC HIGHE
NHIGHE:MOV 42H,#0FFH
SJMP DONE
HIGHE:MOV 42H,#00H
DONE:SJMP $
END
上述程序中多次用到SJMP语句,该语句为无条件转移语句。无条件语句应尽量少用,这样
可使程序结构紧凑而易读,易理解。
解法II:先假设NA > NB,再来判断是否NA ≤ NB
ORG 3000H
CMP2:MOV R0,#00H
MOV A,50H
CJNE A,40H,CMP3
MOV A,51H
CJNE A,41H,CMP3
SJMP NHIGHE
CMP3:JC HIGHE
NHIGHE:MOV R0,#0FFH ;不大于标志
HIGHE:MOV 42H,R0
SJMP $
END
小结:
1、汇编程序有哪三种基本结构?
2
、构成分支程序,常用到哪些判断语句?