微型计算机汇编语言及汇编程序.
第一章微型计算机基础

(2)反码表示法
数的最高位表示数的符号,数值部分对于正数 同真值,对于负数是真值各位取反,这种表示法 就叫反码表示法。
1.对于正数: 符号位用0表示,数字位同真值 2.对于负数: 符号位用1表示,数字位为真值 按位取反。
例 x=+91=+10l1011B [x]反=01011011B 例 y=-91=-1011011B [y]反=10100100B “0”的表示:[+0]反=00000000B [-0]反 =11111111B 对于8位机,反码可表示的数的范围:-127~ +127。
0⊕1=1 读作0“异或”1等于1
1⊕0=1 读作1“异或”0等于1
1⊕1=0 读作1“异或”1等于0
例:
10101111
⊕11000010
01101101
1.2.2计算机中带符号数的表示方法
几个概念: 无符号数 机器数
带符号数 真值
机器数的三种表示方法: 原码表示法 反码表示法 补码表示法
(1)原码表示法
将传统计算机的运算器和控制器集成在一块大 规模集成电路芯片上作为中央处理部件,简称为微 处理器(CPU),微型计算机是以微处理器为核心,再 配上存储器、接口电路等芯片构成的。
微处理器按照其功能可以分为两大部分:总线接口单元 (BIU)和执行单元(EU)。 按照计算机CPU、字长和功能划分,经历了5代的演变: ➢ 第一代(1971年~1973年):4位和8位低档微处理器 ➢ 第二代(1974年~1978年):8位中高档微处理器 ➢ 第三代(1978年~1980年):16位微处理器 ➢ 第四代(1981年~1992年):32位微处理器 ➢ 第五代(1993年以后):全新高性能奔腾系列微处理
8086汇编语言程序设计——第一个程序

8086汇编语⾔程序设计——第⼀个程序本系列以80X86系列微型计算机为基础,以MASM5.0为汇编上机实验环境,重点介绍Intel8086指令系统。
Intel8086指令系统中有100多条指令,利⽤这些指令可以编写出复杂的程序实现更多功能。
汇编语⾔是直接控制计算机硬件⼯作的最简便的语⾔。
学习了汇编语⾔可具有在CPU寄存器级上进⾏控制和操作的能⼒,可获得直接对计算机硬件底层编程的经验。
⼀个计算的例⼦例 *编写⼀个汇编语⾔程序,实现下列公式计算。
假设X=4,Y=5汇编指令如下:如果在DEBUG下⽤A命令输⼊这些指令,必须把X、Y换成具体的数值;Z、Z1是存储单元地址,最后两条指令可写为MOV [0],AL和MOV [1],AH,这样才能⽤T命令执⾏。
D:\dos〉DEBUG-AMOV AL,4ADD AL,5MOV BL,8IMUL BLMOV BL,4MOV BH,0SUB AX,BXMOV BL,2IDIV BLMOV [0],ALMOV [1],AH采⽤DEBUG的A命令输⼊程序的做法明显不⽅便,⼀是⽆法给出变量名即符号地址,⼆是调试修改程序不便。
1. 编写⼀个完整的汇编语⾔源程序需要增加段定义伪指令和定义数据存储单元伪指令等必须有的伪指令。
伪指令与C语⾔等⾼级语⾔中的说明性语句的含义类似,起到说明作⽤。
⽤记事本gedit或者vi编写,保存到dos⽬录下注释符号为;号2. 汇编、链接、执⾏汇编语⾔源程序既可以⽤⼤写字母也可以⽤⼩写字母书写。
汇编语⾔程序建⽴及汇编过程如图所⽰。
⽤户编写的源程序要经汇编程序MASM汇编(翻译)后⽣成⼆进制⽬标程序,⽂件名默认与源程序同名、扩展名为.OBJ;再经过LINK连接⽣成可执⾏程序,⽂件名默认与源程序同名、扩展名为.EXE。
注意:源程序⼀定要和MASM和LINK⽂件放在同⼀个⽂件夹中。
执⾏MASM和LINK命令时需要按多次回车。
3. 在DEBUG下执⾏程序MOV AH,4C指令对应的偏移地址是0023,这就是断点(所谓断点,就是程序执⾏到该处停下来不再继续)。
汇编语言与微机原理

汇编语言与微机原理汇编语言和微机原理是计算机科学中两个重要的概念。
汇编语言是一种低级语言,用于编写计算机程序,在计算机硬件层面上进行操作和控制。
微机原理则是关于微型计算机的基本工作原理和组成结构的知识。
一、汇编语言的概念与应用汇编语言是一种直接操作计算机硬件的编程语言,与高级语言相比,汇编语言更接近计算机底层,能够直接控制硬件资源。
汇编语言通过使用助记符和指令直接操作寄存器、内存和其他硬件设备,实现程序的运行逻辑。
它是高级语言与计算机硬件之间的桥梁。
汇编语言在许多方面都有广泛的应用。
首先,在嵌入式系统领域,汇编语言可以更好地利用有限的资源,提高系统的性能和响应速度。
其次,在计算机游戏开发中,汇编语言可以直接控制硬件,实现更复杂的图形和音频效果。
此外,在密码学和安全领域,使用汇编语言编写的代码更难以被破解和攻击。
二、微机原理的基本概念微机原理是研究微型计算机的基本工作原理和组成结构的学科。
微型计算机由中央处理器(CPU)、存储器、输入输出设备及总线等几个基本组成部分构成。
微机原理主要探讨这些组件的工作原理以及它们之间的通信和配合方式。
CPU是微机系统的核心部件,它承担了计算和控制的功能。
CPU通过指令周期不断地执行指令,从而完成任务。
存储器用于存储程序和数据,分为内存和外存两种。
输入输出设备用于与外部环境进行数据交互。
而总线则连接了CPU、存储器和输入输出设备,实现了它们之间的数据传输和通信。
在微机原理中,还需要了解指令系统、寻址方式、中断处理以及时序控制等内容。
指令系统是CPU能够理解和执行的指令集合,每条指令都对应着一种操作。
寻址方式决定了CPU如何访问存储器中的数据。
中断处理可以让CPU在执行任务过程中暂时停下来处理优先级更高的事件。
时序控制则负责协调微机系统各个组件的工作顺序和时机。
三、汇编语言与微机原理的关系汇编语言和微机原理是紧密相关的。
汇编语言是在微机原理的基础上进行编程的工具。
通过汇编语言,可以更深入地了解微机原理中的各个组成部分以及它们的工作方式。
汇编语言基础知识

汇编语言基础知识汇编语言是直接在硬件之上工作的编程语言,首先要了解硬件系统的结构,才能有效地应用汇编语言对其编程,因此,本章对硬件系统结构的问题进行部分探讨,首先介绍了计算机的基本结构、Intel 公司微处理器的发展、计算机的语言以及汇编语言的特点,在此基础上重点介绍寄存器、内存组织等汇编语言所涉及到的基本知识。
1.1 微型计算机概述微型计算机由中央处理器(Central Processing Unit ,CPU )、存储器、输入输出接口电路和总线构成。
CPU 如同微型计算机的心脏,它的性能决定了整个微型计算机的各项关键指标。
存储器包括随机存储器(Random Access Memory ,RAM )和只读存储器(Read Only Memory ,ROM )。
输入输出接口电路用来连接外部设备和微型计算机。
总线为CPU 和其他部件之间提供数据、地址和控制信息的传输通道。
如图1.1所示为微型计算机的基本结构。
外部设备存储器输入输出接口电路中央处理器CPU地址总线数据总线控制总线图1.1 微型计算机基本结构特别要提到的是微型计算机的总线结构,它使系统中各功能部件之间的相互关系变为各个部件面向总线的单一关系。
一个部件只要符合总线结构标准,就可以连接到采用这种总线结构的系统中,使系统功能得到扩展。
数据总线用来在CPU 与内存或其他部件之间进行数据传送。
它是双向的,数据总线的位宽决定了CPU 和外界的数据传送速度,8位数据总线一次可传送一个8位二进制数据(即一个字节),16位数据总线一次可传送两个字节。
在微型计算机中,数据的含义是广义的,数据总线上传送的不一定是真正的数据,而可能是指令代码、状态量或控制量。
地址总线专门用来传送地址信息,它是单向的,地址总线的位数决定了CPU 可以直接寻址的内存范围。
如CPU 的地址总线的宽度为N ,则CPU 最多可以寻找2N 个内存单元。
控制总线用来传输控制信号,其中包括CPU送往存储器和输入输出接口电路的控制信号,如读信号、写信号和中断响应信号等;也包括其他部件送到CPU的信号,如时钟信号、中断请求信号和准备就绪信号等。
微机原理与汇编程序设计复习题

微机原理与汇编程序设计复习题微机系统与汇编语言复习题单项选择题10某2=20分填空题10某2=20分问答题:5某5=25分程序分析题4某5=20分设计应用题1某15=15分第一章微型计算机概述答:微型计算机系统是以微型计算机为主体,配上软件系统和外部设备而构成的。
第二章计算机中的数据表示1.58的非压缩BCD和压缩BCD各如何表示?写出存入D某的指令。
答:58的非压缩BCD是0508H存入D某的指令:MOVD某,0508H58的压缩BCD和是58H存入D某的指令:MOVD某,0058H2、什么是ASCII码?可表示哪些信息?按其作用可分为哪些?答:ASCII码是美国信息交换标准代码的简称,用于给西文字符编码。
包括英文字母的大小写、数字、专用字符、控制字符等;按其作用可分为:34个控制字符;10个阿拉伯数字52个英文大小写字母;32个专用符号第三章80某86微处理器及其体系结构1、8086CPU信号线RESET的功能是什么?8086复位后内部寄存器状态是怎样的?8086CPU复位后从什么单元中取第一条指令执行。
答:RESET—复位信号输入8086复位后CS=FFFFH、DS=0000H、ES=0000H、SS=0000H、IP=0000H、FR=0000H8086CPU复位后从CS某10H+IP=FFFFH某10H+0000H=FFFF0H地址单元中取第一条指令执行启动系统。
CS:IP=FFFF:0000H2、已知一个SRAM芯片的容量为8K某8和64K某8,地址线、数据线各为多少?答:SRAM芯片的容量为8K某8:地址线13条,数据线8条SRAM芯片的容量为64K某8:地址线16条、数据线8条3、指令指针寄存器IP多少位?有何功能?答:IP是一个16位的寄存器,存放EU要执行的下一条指令的偏移地址,用以控制程序中指令的执行顺序,实现对代码段指令的跟踪4、8086CPU用于地址锁存器输入允许的控制信号和用于数据收发器允许的控制信号各是什么信号?答:用于地址锁存器输入允许的控制信号是ALE,用于数据收发器允许的控制信号是DEN5、是什么引脚?答:等待测试引脚6、INTA是什么引脚?答:中断响应引脚7、M/IO是什么引脚?答:存储器访问/输入输出访问控制引脚8、8086CPU最小、最大方式时用于总线请求、允许的信号线各是什么?答:最小:HOLD---总线请求HLDA---总线响应最大:RQ/GT0、RQ/GT19、8086CPU访问存贮器和访问I/O的地址分别各为什么?可寻址的最大存贮器空间和最大I/O空间分别各为多少?答:8086CPU访问存贮器的地址是A19—A0,可寻址的最大存贮器空间是1MB.8086CPU访问I/O的地址是A15—A0,可寻址的最大I/O空间是64KB.10、什么是逻辑地址?什么是物理地址?它们各自如何表示?如何转换?答:程序中使用的存储器地址称为逻辑地址,由16位“段基址”和16位“偏移地址”(段内地址)组成。
16、32位微机原理、汇编语言和接口技术教程课后习题答案解析

《16/32 位微机原理、汇编语言及接口技术教程》部分习题参考解答第1 章微型计算机系统概述〔习题1.2 〕什么是通用微处理器、单片机(微控制器)、芯片、嵌入式系统?〔解答〕通用微处理器:适合较广的应用领域的微处理器,例如装在机、笔记本电脑、工作站、服务器上的微处理器。
单片机:是指通常用于控制领域的微处理器芯片,其内部除外还集成了计算机的其他一些主要部件,只需配上少量的外部电路和设备,就可以构成具体的应用系统。
芯片:称数字信号处理器,也是一种微控制器,其更适合处理高速的数字信号,内部集成有高速乘法器,能够进行快速乘法和加法运算。
嵌入式系统:利用微控制器、数字信号处理器或通用微处理器,结合具体应用构成的控制系统,其典型的特点是把计算机直接嵌入到应用系统之中。
〔习题1.5 〕说明微型计算机系统的硬件组成及各部分作用。
〔解答〕:也称处理器,是微机的核心。
它采用大规模集成电路芯片,芯片内集成了控制器、运算器和若干高速存储单元(即寄存器)处理器及其支持电路构成了微机系统的控制中心,对系统的各个部件进行统一的协调和控制。
存储器:存储器是存放程序和数据的部件。
外部设备:外部设备是指可与微机进行交互的输入()设备和输出()设备,也称设备。
设备通过接口与主机连接。
总线:互连各个部件的共用通道,主要含数据总线、地址总线和控制总线信号。
习题1.6 〕什么是总线?微机总线通常有哪3 组信号?各组信号的作用是什么?〔解答〕总线:传递信息的共用通道,物理上是一组公用导线。
3 组信号线:数据总线、地址总线和控制总线。
(1)地址总线:传输将要访问的主存单元或端口的地址信息。
(2)数据总线:传输读写操作的数据信息。
(3)控制总线:协调系统中各部件的操作。
习题1.7 〕简答如下概念:(1)计算机字长(2)取指-译码-执行周期(3)(4)中断(5)总线解答〕(1)处理器每个单位时间可以处理的二进制数据位数称计算机字长。
(2)指令的处理过程,即指处理器从主存储器读取指令(简称取指),翻译指令代码的功能(简称译码),然后执行指令所规定的操作(简称执行)的过程。
030731004《微机原理与汇编语言》教学大纲

《微机原理与汇编语言》课程教学大纲课程代码:030731004课程英文名称:Computer Principles and Assembly Language课程总学时: 56 讲课: 44 实验:12适用专业:电子信息科学与技术大纲编写(修订)时间:2010一、大纲使用说明(一)、课程地位及教学目标本课程是电子信息科学与技术专业的必修的专业基础课,主要任务是使学生掌握8088/8086系列汇编程序设计和PC机硬件原理知识,并具有一定的应用能力。
(二)、知识,能力及技能方面的基本要求通过本课程学习,要求学生从理论上和实践上掌握计算机的基本组成、工作原理、硬件的连接等内容,会编写较简单的汇编语言程序,并能利用PC总线进行I/O扩展及编程,建立微机系统的整体概念,使学生具有应用微机系统软硬件开发的初步能力,为后续课程单片机、数字系统设计、ARM等打下理论基础。
(三)、实施说明由于本课程是主要专业基础课,对先修课基础要求较高,在讲授具体内容时,应注重基础原理内容和实际应用介绍,使学生在掌握基本原理的基础上,具有一定解决实际问题的能力。
要提高学生的基本素质和应用能力,必须改变传统的教学手段。
要利用多媒体授课;增加自学讨论部分,使学生从被动吸收知识的状态下,转化到主动索取知识的状态中来。
同时,应不断增加新知识。
总学时:56学时;讲课:44学时;实验:12学时。
(四)、对习题,实验,实践环节的要求本大纲立足于实施素质教育为目标培养的。
习题从教材中选取,按时交作业,编程习题尽量上机验证。
实验强调应用性,学生应独立完成,实验前预习实验内容。
(五)、对先修课程的要求1.计算机导论课程中的计算机数的编码,二、十六进制,BCD,ASCII码;2.数字电子技术课程中的逻辑电路基础。
(六)、考核方式及成绩评定方式1.考核方式:考试。
2.考试方法:闭卷。
3.课程总成绩:最终理论考试与平时考核(包括实验、期中考试、作业、出勤、提问等)的总和。
第4章 汇编 语言程序设计

DJNZ R1,LOOP ;R1减1不为零,则跳LOOP处 NOP
HERE:SJMP
HERE
上述4个字段应该遵守的基本语法规则如下。
10
1.标号字段
语句所在地址的标志符号,才能被访问。如标号 “START”和“LOOP”等。有关标号规定如下: (1)标号后必须跟冒号“:”。 (2)标号由1~8个ASCII码字符组成,第一个字符必须是
8
汇编语言语句是符合典型的汇编语言的四分段格式:
标号字段 (LABLE) 操作码字段 (OPCODE) 操作数字段 (OPRAND) 注释字段 (COMMENT)
标号字段和操作码字段之间要有冒号“:”分隔; 操作码字段和操作数字段间的分界符是空格; 双操作数之间用逗号相隔;
操作数字段和注释字段之间的分界符用分号“;”。
表示的机器语言程序,才能识别和执行。
完成“翻译”的程序称为汇编程序。经汇编程序“汇编”得 到的以“0”、“1”代码形式表示的机器语言程序称为目标 程序。
5
优点:用汇编语言编写程序效率高,占用存储空间小,运行 速度快,能编写出最优化的程序, 缺点:可读性差,离不开具体的硬件,是面向“硬件”的语 言通用性差。 2.高级语言
功能是把P1.6的位地址赋给变量QA。
4.2
汇编语言源程序的汇编
“汇编”?汇编可分为手工汇编和机器汇编两类。
22
4.2.1
手工汇编
通过查指令的机器代码表(表3-2),逐个把助记符指令 “翻译”成机器代码,再进行调试和运行。 手工汇编遇到相对转移偏移量的计算时,较麻烦,易出 错,只有小程序或受条件限制时才使用。实际中,多采用“ 汇 编程序”来自动完成汇编。
16
重叠。例如:
ORG …… ORG …… ORG …… 2000H 2500H 3000H
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
标号:
标号是一条指令目标代码的符号地址,它常作为转移指令和 子程序调用指令的操作数。每个标号具有3个属性:段属性、 偏移量属性、距离属性。
7.1 宏汇编语言的基本语法
表达式与运算符:
表达式由操作数和运算符组成,在汇编时一个表达式得到一 个值。 (1)算术运算符:+,-,*,/,MOD,SHL,SHR。 (2)逻辑运算符:AND,OR,XOR,NOT。 (3)关系运算符:EQ,NE,LT,LE,GT,GE。当关系成立时,结果 为0FFFFH,当关系不成立时,结果为0。 (4)分析运算符:SEG,OFFSET,TYPE,SIZE,LENGTH。 (5)组合运算符:PTR,THIS。 (6)分字符串常数:用引号扩起来的一个或多个字符,这些字符 以ASCII码形式存储在内存中。如“AB”,在内存中就是41H、 42H。
变量:
变量是代表存放在某些存储单元的数据,这些数据在程序运 行期间可以随时修改。为了便于对变量的访问,它常常以变 量名的形式出现在程序中,它可以认为是存放数据的存储单 元的符号地址。 经过定义的变量具有3个属性:段属性、偏移量属性、类型属 性。
2.内存数据定义伪指令
(1)字节定义伪指令 [名字]DB〈表达式或数据项表〉 表达式值或项表中的每一项是一个字节数,它们从符号名地 址开始按字节连续存放,直到表中数据项结束(地址递增)。 例如: DATA1 DB 50H,50 DATA2 DB ?,?
7.2 伪指令
STRING1 DB ‘ABCDEF’ DATA3 DB 20H DUP(?) (2) 字定义伪指令 [名字]DW〈表达式或数据项表〉 除表达式值或项表中的每一项是两个字节数之外,其它与DB 伪指令相同。 例如: DA_WORD DW 0A3F1H,4981H DA_W DW ?,? D_W1 DW 10H DUP(4) (3) 4字节定义伪指令 [名字]DD〈表达式或数据项表〉 表达式值或项表的每一项是4个字节数。 (4) 8字节定义伪指令 [名字]DQ〈表达式或数据项表〉
8.定位伪指令
格式: ORG〈表达式〉 该伪指令把以下语句定义的内存数据或程序,从表达式指定的起 点(偏移地址)开始连续存放,直至遇到新的ORG指令。
7.3 宏指令
为了简化汇编语言源程序的书写,把一些频繁出现的程序段定 义为“宏指令”,当程序中遇到这个程序段时,只需用一条宏调 用语句,这样有效地缩短了源程序的长度,使源程序易读,也减 少了由于重复书写而引起的错误。 宏指令的使用要经过如下3个步骤: (1) 宏定义:对各个宏指令进行定义,并分别起一个名字; (2) 宏调用:在需要使用的地方,通过宏指令名来调用它; (3) 宏扩展:由宏汇编程序用宏定义中的指令来代替宏指令名。 宏代换语句 格式:宏名 MACRO [形式参数1,形式参数2,…] ┆ 宏体(指令序列) ENDM 功能:宏代换语句为指令序列定义一个宏名,称为宏指令,宏名 可以像指令一样在程序中引用。
汇编运算符的优先级:
见表7.2(见书第160页)所示。
7.2 伪指令
1.符号定义伪指令(赋值语句):
(1)<名字> EQU <表达式> (2)<名字> = <表达式> 该语句把表达式的值赋给符号名,在同一程序中,用EQU语句 赋值的符号名不能被重新赋值,但被“=”赋值的符号名可以 被重新赋值。
7.2 伪指令
(5) 10字节定义伪指令 [名字]DT〈表达式或数据项表〉
3.段定义伪指令
存储器在逻辑上是分段的,各段的定义由伪指令实现。 格式:〈段名〉SEGMENT[定位方式][连接方式][‘类别 名’] … 〈段名〉ENDS 段定义伪指令为程序的汇编和连接说明了段名、分段的各种属性 以及分段的开始和结束。段名是自定义符,开始的段名与结束的 段名必须相同。段的长度不超过64KB。SEGMENT后面的参数是可 选项。
第7章 微型计算机汇编语言及汇编程序
主要内容
宏汇编语言的基本语法 伪指令 宏指令 系统功能调用 汇编语言源程序的基本结构 汇编语言源程序从编辑到执行所经历的过程
7.1 宏汇编语言的基本语法
伪指令的概念:
伪指令本身不产生对应的机器目标代码,其作用是向汇编程 序提供汇编所需要的某些信息,为汇编语言源程序设计提供 方便。
格式: 〈过程名〉PROC[NEAR](或[FAR]) … 〈过程名〉ENDP 过程名是自定义符,定义过程是为实现子程序调用而设的,调用 格式为: CALL〈过程名〉 过程由RET指令返回。过程起始名和终止名必须相同。 NEAR:段内调用,FAR:段间调用,默认时系统约定是NEAR。
7.2 伪指令
6.模块开始伪指令
格式: NAME 模块名 该伪指令指明程序模块的开始,并指出模块名。模块名是自定义 符,它不能是系统保留字,每次汇编只能出现一次。若该伪指令 默认,则取TITLE语句中的页标题前6个字符;若没有TITLE语句, 则取源程序文件名为模块名。
7.模块结束伪指令
格式: END [启动标号或过程名] 该伪指令告诉汇编程序源文件结束,并给出执行程序的入口位置。 启动地址只有在主模块才有意义。
伪指令语句格式:
常数、变量和标号:
常数、变量和标号是汇编语言能识别的数据项,它是指令和 伪指令语句中操作数的基本组成部分。一个数据项往往包含 数值和属性两部分,这两部分对于一条语句汇编成机器目标 代码都有直接关系。
7.1 宏汇编语言的基本语法
常数:
常数是没有任何属性的纯数值,在汇编期间,它的值已能完 全确定,且在程序运行中,它也不会发生变化。它有以下几 种类型: (1)二进制数:以B结尾,由0、1组成的数字序列,如 01011010B。 (2)八进制数:以O或Q结尾,由0~7组成的数字序列,如 723Q,35O。 (3)十进制数:以D结尾(可以省略),由0~9组成的数字序列, 如129,129D。 (4)十六进制数:以H结尾,由0~9、A~F(a~f)组成的序列,如 3A5BH,0A5FDH,0FB12H。 (5)实数:由整数、小数和指数3部分组成,一般用十进制数 给出,其格式如下: ±整数部分.小数部分E±指数部分, 如:5.213E-4。
7.2 伪指令
4.段寄存器说明伪指令
格式:ASSUME 段寄存器:段定义名1[,段寄存器:段定义名 2 , …] 该伪指令告诉汇编程序在汇编时,段寄存器CS、DS、SS和ES应 具有的符号段基址,以便汇编指令时确定段和建立错误信息。但 是段寄存器实际值(CS除外)还要由传送指令在执行程序时赋值。
5.过程(子程序)定义伪指令