汇编语言清华大学沈美明
微机原理与应用
一、计算机的发展历程
第四代:大规模集成电路计算机时代 大规模集成电路,集成度越来越高;软件上采用数据库和
软件工程,把软件设计提高到工程设计高度提出了规范化设计 方法。
第五代:“非冯。诺伊曼”计算机时代。 冯。诺伊曼结构具有程序存储和程序的顺序执行的特点。
第六代:神经网络计算机时代,光计算机时代,生物计算机时 代。
控制逻辑
1.1 微型计算机系统的组成
微计算机:
组成:CPU、存储器、I/O接口、总线、支持硬件系统工作 的基本I/O系统(监控程序BIOS)。
CPU
Memory
I/O interface
A . BUS D . BUS C . BUS
BIOS
1.1 微型计算机系统的组成
微型计算机系统:
Memory系统、CPU、I/O系统(打印机、软硬盘驱动、 鼠标、键盘、光驱等)、电源系统和丰富的操作系统。
三、程序的执行
指令是构成程序的基本单元。 程序的执行是这样一个连续的过程:逐条从存储器中读取 程序中的指令并执行指令规定的操作。 在计算机中,任何信息都必须以二进制代码形式存在。用 汇编语言编写的程序最终必须变换成机器码语言程序才能在计 算机中执行,这就是编译系统。
无论多么复杂的运算,都可以分解成一系列基本运算。高 级语言程序中的一条语句的功能是靠若干条指令的程序段完成 的。
f汇编语言(第2版)第1章
0 16 1 0 a2= 1
79
a1 =
8
64
a0 = 15
∴ 399D=18FH
把要转换的十进制数的整数 部分不断除以16,并记下余 数,直到商为0为止。最后得 到的余数因其权最大,所以该 余数为目标数的最高位.
16
参与运算的数的基本位数标志着计算精符号位数值位设机器字长n16符号位数值位151413121110符号位0表示正数符号位1表示负数设机器字长24计算机中二进制数的常用单位1个二进制位
汇编语言程序设计
Assembly Language and Programming
主讲: 周彩兰
武汉理工大学计算机科学与技术学院
0000 0100 1111 0001 1111 0101
[4]补= 0000 0100 [-4]补= 1111 1100 2. ( +15 ) - ( +4 )
0000 1111 1111 1100 0000 1011
+
+ 1
1111 0101求补后得 [0000 1011] =11, 所以1111 0101为 – 11的补码.
#include "stdafx.h" #include "stdio.h" main ( ) { int a,b,c; a=1; b=2; c=a+b; printf(“c=%d\n",c); return 0; }
IBM-PC汇编语言程序设计(第二版)课后习题答案(清华大学出版社)
5--A 4--B 2--C 3--D 12--E 9--F 11--G 10--H 13--I 8--J 7--K 6---L 1--M 15--
RIGHT: MOV B ,AX
MOV [B+2],DX
23.每條指令單獨執行完後的結果依次為:
(1) 9AH (2)61H (3)0FBH (4)1CH (5)0 (6)0E3H
24.執行指令序列後,BX 的內容為:0DAH
25.
(1)把 53D 乘以 2 的程序:
MOV AX,35H
;53D=35H
MOV BX,X ;X 送到 BX 中
ADD BX,6 ;X+6
ADD AX,BX ;(R+9)+(X+6),结果保存在 AX 中
MOV BX,W ; W 送到 BX 中
SUB BX,AX ; W-(R+9)-(X+6),连续减去两个数,相当于减去这两个数的和
MOV Z,BX ;最终结果送到 Z 中
STOSW
(5)檢查 CONAME 字符串中有無空格字符,如有把它偉送給 BH 寄存器的程序實現:
LEA DI,CONAME ;把 CONAME 中第一個字符偏移地址放入 DI 中
《汇编语言程序设计》(第四版)教案及答案解析
《汇编语言程序设计》教案
附:习题参考答案
《汇编语言程序设计》(第4版)
钱晓捷主编
前言
1.汇编语言是计算机能提供给用户的最快而又最有效的语言,也是能够利用计算机所有硬件特性并能直接控制硬件的唯一语言。
2.汇编语言程序设计是高等院校电子计算机硬、软件及应用专业学生必修的核心课程之一。它不仅是计算机原理、操作系统等其它核心课程的必要先修课,而且对于训练学生掌握程序设计技术、熟悉上机操作和程序调试技术都有重要作用。
3.本教材共有十一章,其内容安排如下:
(1).第一、二章为汇编语言所用的基础知识。
(2).第三章详细介绍80x86系列CPU的指令系统和寻址方式。
(3).第四章介绍伪操作、汇编语言程序格式及汇编语言的上机过程。
(4).第五、六章说明循环、分支、子程序结构和程序设计的基本方法。
(5).第七章说明宏汇编、重复汇编及条件汇编的设计方法。
(6).第八章叙述输入/输出程序设计方法,重点说明中断原理、中断过程及中断程序设计方式。
(7).第九章说明BIOS和DOS系统功能调用的使用方法。
(8).第十~十一章分别说明图形显示、发声及磁盘文件存储的程序设计方法,同时提供各种程序设
计方法和程序实例。
附:教学参考书
1.沈美明、温冬婵编著,IBM–PC汇编语言程序设计(第2版),清华大学出版社,2001年(教材)
2.沈美明、温冬婵编著,IBM–PC汇编语言程序设计,清华大学出版社,1991年
3.沈美明、温冬婵编著,IBM–PC汇编语言程序设计—例题习题集,清华大学出版社,1991年6月
4.沈美明、温冬婵、张赤红编著,IBM–PC汇编语言程序设计—实验教程,清华大学出版社,1992年
汇编语言程序设计 教学大纲
汇编语言程序设计
一、课程说明
课程编号:390226Z10
课程名称(中/英文):汇编语言程序设计/ Assembly Language Programming
课程类别:专业选修课
学时/学分:32/2
先修课程:计算机系统基础,高级程序设计语言
适用专业:软件工程
教材、教学参考书:
[1] 汇编语言,王爽主编,北京:清华大学出版社,2008
[2] Intel汇编语言程序设计(第四版),Kip R.Irvine,北京:电子工业出版社,2004
[3] 汇编语言,郑晓薇,北京:机械工业出版社,2009
[4] IBM-PC 汇编语言程序设计,沈美明、温冬婵主编,北京:清华大学出版社,2001
[5] 汇编语言程序设计实验设计指导书,沈美明主编,北京:清华大学出版社,2003
二、课程设置的目的意义
《汇编语言程序设计》课程是软件工程专业本科生选修专业基础课,对于学生深刻理解计算机原理,建立完整的计算机系统的概念至关重要。课程主要介绍Intel80X86汇编语言寻址方式与指令系统;汇编语言源程序的构成;顺序、分支、循环、子程序等程序设计以及中断程序设计方法。通过教学,使学生掌握一种典型的汇编指令系统,具有汇编语言程序设计与调试的能力,为后续课程学习及以后系统软硬件开发应用奠定良好的基础。
三、课程的基本要求
通过本课程的学习,要求学生能够掌握汇编语言程序设计与调试的能力,为更深入地学习和今后从事软件工程实践打下良好的基础。具体要求如下:
(一)知识学习要求
1、掌握计算机中数的表示,各寄存器的名称和用途,存储器分段结构,物理地址、逻辑地址的概念,物理地址的形成,对应培养方案“培养要求”1-①-B;
汇编语言程序设计课后习题答案(第二版_沈美明)(无删减)
汇编语言程序设计课后习题答案(第二版_沈美明)(无删减)
第一章
1.1 用降幂法和除法将下列十进制数转换为二进制数和十六进制数: (1) 369 (2) 10000 (3) 4095 (4) 32767 答:(1) 369=1 0111 0001B=171H
(2) 10000=10 0111 0001 0000B=2710H (3) 4095=1111 1111 1111B=FFFH
(4) 32767=111 1111 1111 1111B=7FFFH
1.2 将下列二进制数转换为十六进制数和十进制数:
(1) 10 1101 (2) 1000 0000 (3) 1111 1111 1111 1111 (4) 1111 1111 答:(1) 10 1101B=2DH=45 (2) 1000 0000B=80H=128
(3) 1111 1111 1111 1111B=FFFFH=65535 (4) 1111 1111B=FFH=255
1.3 将下列十六进制数转换为二进制数和十进制数: (1) FA (2) 5B (3) FFFE (4) 1234 答:(1) FAH=1111 1010B=250 (2) 5BH=101 1011B=91
(3) FFFEH=1111 1111 1111 1110B=65534 (4) 1234H=1 0010 0011 0100B=4660
1.4 完成下列十六进制数的运算,并转换为十进制数进行校核: (1) 3A+B7 (2)
1234+AF (3) ABCD-FE (4) 7AB×6F 答:(1) 3A+B7H=F1H=241 (2) 1234+AFH=12E3H=4835 (3) ABCD-FEH=AACFH=43727 (4) 7AB×6FH=35325H=217893
汇编程序设计实验
汇编程序设计实验
实验二简单程序设计
实验目的:熟悉汇编程序设计的基本过程。
实验内容:
1、NUMB1 DB ?
NUMB2 DW 20 DUP(?)
NUMB3 DB ‘USB’
MOV AX,TYPE NUMB1
2、编写人机对话程序 WHAT IS YOUR NAME? 输入:My name is .
DSEG SEGMENT
DATA DB 0AH,0DH,'WHAT IS YOUR NAME?$'
BUF DB 81
DB ?
DB 80 DUP(0)
DSEG ENDS
STACK1 SEGMENT
DB 200 DUP(0)
STACK1 ENDS
CODE SEGMENT
ASSUME CS:CODE,DS:DSEG,SS:STACK1
START: MOV AX,DSEG
MOV DS,AX
LEA DX,DATA
MOV AH,09H
INT 21H
LEA DX,BUF
MOV AH,0AH
INT 21H
MOV AH,4CH
INT 21H
CODE ENDS
END START
思考:汇编程序设计有那些步骤,应该注意什么?
实验三程序设计练习一
实验目的:1.掌握汇编语言程序的结构和各种结构程序设计的方法;
2.熟悉汇编语言程序设计全过程;
3.用汇编语言进行程序设计。
实验内容:
EX1:将变量A=10011010B的数据以二进制形式在显示器上输出。
EX2:1+2+22+23+……+2n-1=255,求N值并显示出来。
EX3:已知在以BUF为首地地址的字节存储区中,存放着一个以‘$’作结束标志的字符串,编写程序,显示该字符串,并要求将小写字母以大写字母形式显示出来。(小写a为61H,大写A 为41H。)
汇编语言实现图形显示方式的程序设计
汇编语言是一种面向机器的语言,实际上是一种符号化的机器语言,它将机器指令的操作码、操作数由二进制代码改为人们熟悉的符号。其优点是程序代码短,执行速度快,占内存空间小,可充分利用计算机的硬件特性。由于它是相对低级的语言,没有高级语言那样强大的库函数作支撑,所以用汇编语言开发程序,编程工作量大,开发周期长,容易出错且不易调试。但这并不是说汇编语言就会完全被高级语言取代,如果进行涉及计算机控制、通信、动画、虚拟现实程序设计及许多对速度要求较高的软件设计,都常要求使用汇编语言设计。在图形领域,汇编语言具有潜在的优点。如何在汇编编程中实现图形显示效果,主要涉及到以下几方面的内容:
1.中断控制方式
在汇编程序中为了实现图形显示,需要通过中断的控制方式。中断是现代计算机输入/输出程序设计常用的控制方式,用以完成基本输入/输出管理,包括键盘管理及显示处理等。操作系统把一些常用的输入、输出、文件处理等基本操作,编制成若干子程序存放在系统内,这些子程序又称为中断服务程序,对它们的调用均用中断指令INT来进行。我们称之为软中断指令。系统提供的子程序可分为两组:一组在ROM 的BIOS(基本输入/输出系统)中,另一组在操作系统DOS中。
2.ROM BIOS系统调用
通常,有些功能既可以通过DOS中断调用来完成也可以通过BIOS 中断调用来完成。BIOS比DOS更靠近硬件,故硬件控制功能更强,而且执行速度更快,但需要了解的硬件细节也更多,设计起来要麻烦一些,因此,应用程序应尽可能地使用DOS功能调用,不仅容易实现,同时对硬件的依赖性最少。但是少数情况下必须使用BIOS功能,比如在汇编程序中实现图形显示。DOS功能调用中不能显示图形,即使显示字符,也不能设置字符颜色等。BIOS是固化在ROM中的基本输入/输出系统(Basic Input/Output System,BIOS),它由一组例行程序组成,提供了系统加电自检、引导装入、主要I/O设备的处理程序以及接口控制等功能模块。
汇编课后题答案(清华大学出版社沈美明版)
汇编课后题答案(清华大学出版社沈美明版)
第一章.+习题
1.1用降幂法和除法将下列十进制数转换为二进制数
和十六进制数:
(1) 369 (2) 10000 (3) 4095 (4) 32767
答:(1) 369=1 0111 0001B=171H
(2) 10000=10 0111 0001 0000B=2710H
(3) 4095=1111 1111 1111B=FFFH
(4) 32767=111 1111 1111 1111B=7FFFH
1.2将下列二进制数转换为十六进制数和十进制数:(1) 10 1101 (2) 1000 0000 (3) 1111 1111 1111 1111 (4) 1111 1111
答:(1) 10 1101B=2DH=45
(2) 1000 0000B=80H=128
(3) 1111 1111 1111 1111B=FFFFH=65535
(4) 1111 1111B=FFH=255
1.3将下列十六进制数转换为二进制数和十进制数:(1) FA (2) 5B (3) FFFE (4) 1234
答:(1) FAH=1111 1010B=250
(2) 5BH=101 1011B=91
(3) FFFEH=1111 1111 1111 1110B=65534
(4) 1234H=1 0010 0011 0100B=4660
1.4完成下列十六进制数的运算,并转换为十进制数
进行校核:
(1) 3A+B7 (2) 1234+AF (3) ABCD-FE
(4) 7AB×6F
答:(1) 3A+B7H=F1H=241
IBM-PC汇编语言程序设计课后习题答案(第二版 沈美明))
第五章
5、1 试编写一个汇编语言程序,要求对键盘输入的小写字母用大写字母显示出来。
答:程序段如下:
BEGIN: MOV AH, 1 ;从键盘输入一个字符的DOS调用
INT 21H
CMP AL, ‘a’ ;输入字符<‘a’不?
JB STOP
CMP AL, ‘z’ ;输入字符>‘z’不?
JA STOP
SUB AL, 20H ;转换为大写字母,用AND AL, 1101 1111B也可
MOV DL, AL ;显示一个字符的DOS调用
MOV AH, 2
INT 21H
JMP BEGIN
STOP: RET
5、2 编写程序,从键盘接收一个小写字母,然后找出它的前导字符与后续字符,再按顺序显示这三个字符。
答:程序段如下:
BEGIN: MOV AH, 1 ;从键盘输入一个字符的DOS调用
INT 21H
CMP AL, ‘a’ ;输入字符<‘a’不?
JB STOP
CMP AL, ‘z’ ;输入字符>‘z’不?
DEC AL ;得到前导字符
MOV DL, AL ;准备显示三个字符
MOV CX, 3
DISPLAY: MOV AH, 2 ;显示一个字符的DOS调用
INT 21H
INC DL
LOOP DISPLAY
STOP: RET
5、3 将AX寄存器中的16位数分成4组,每组4位,然后把这四组数分别放在AL、BL、CL与DL中。
答:程序段如下:
DSEG SEGMENT
STORE DB 4 DUP (?)
DSEG ENDS
┇
BEGIN: MOV CL, 4 ;右移四次
MOV CH, 4 ;循环四次
LEA BX, STORE
计算机科学与技术专业主干课程简介
计算机科学与技术专业主干课程简介
课程编号:0806050101 课程名称:计算机导论课时:68
课程内容:本课程是计算机专业的基础课,也是入门课。通过对本课程的学习,学生将初步认识计算机的产生、发展历程,清晰了解计算机的硬件、软件、操作系统、网络等概念,掌握计算机操作应用的基本技能,为学习计算机专业的后继基础课与专业课打好基础。
教材与参考书目:
1、计算机导论,杨克昌等主编,中国水利水电出版社
2、计算机导论,朱战立等主编,电子工业出版社
课程编号:0806050106 课程名称:C语言程序设计课时:85
课程内容:C程序设计是计算机专业的一门主要课程,C语言是近年来国内外得到迅速推广使用的一种现代语言,它的功能丰富,表达力强,使用方便,应用面广,目标程序效率高,可移植性好,不仅是系统描述语言,而且又是通用的程序设计语言。学习好这门课程,将为学会开发软件提供有力的工具,并为维护计算机打下良好的基础。
教材与参考书目:
1、C语言程序设计(第三版),谭浩强,清华大学出版社
2、C程序设计(第二版)谭浩强著,清华大学出版社
课程编号:0806050107 课程名称:数字逻辑课时:68
课程内容:数字逻辑是计算机专业的主要技术基础课,是进行电路设计的基础。本课程系统地介绍了逻辑设计的理论基础和逻辑电路的分析和设计方法,重点是组合逻辑电路和同步时序电路的分析与设计,掌握脉冲电路的设计,并了解几种可编程逻辑器件的基本结构、工作原理及应用,了解几种集成逻辑门和一些中规模集成芯片的功能及性能。
教材与参考书目:
1、数字逻辑与数字系统(第三版·网络版),白中英,科学出版社
汇编语言1(清华大学沈美明)
3.3.1.1、通用数据传送指令之:PUSH 、通用数据传送指令之:
格式: 格式: PUSH 操作: 操作: SP 16REG/MEM SPSP-2 SRC
(SP+1),(SP) SP+1)
SRC:寄存器、 SRC:寄存器、存储器 注意: 注意: 16位寄存器/存储器;80286以上可以是立即数 16位寄存器/存储器;80286以上可以是立即数 位寄存器 可以对段寄存器进行操作, 可以对段寄存器进行操作,如CS 堆栈内容FILO出进行 堆栈内容FILO出进行 FILO
3.3.1.1、通用数据传送指令之:XCHG指令 、通用数据传送指令之: 指令
格式: 格式: XCHG DST 通同寄存器 存储器 操作: 操作: DST SRC SRC 通用寄存器 存储器
注意: 不能同时为存储器,至少要有一个为寄存器。 注意: 不能同时为存储器,至少要有一个为寄存器。 不能为立即数 不能为段寄存器和IP 不能为段寄存器和IP 不影响标志位
3.3.1.2、累加器专用传送指令之:IN 、累加器专用传送指令之:
功能: I/O口的数据送到CPU 功能:将I/O口的数据送到CPU 口的数据送到 长格式: 长格式:IN AL,IMM8 操作: 操作: AL 长格式: 长格式: IN AX (IMM8) (IMM8+1),(IMM8)
注意: 注意: 端口号<256时,可以长短 端口号< 时 方式均可; 方式均可; 端口号≥256时,必须使用方 端口号 时 式。
清华大学汇编语言(沈美明,温冬婵)课后答案
汇编语言程序设计(第二版)
(清华大学IBM-PC 汇编语言程序设计(第二版)沈美明温冬婵编著)
第二章
1、答:直接由指令指定的I/O端口数为256个。
2、答:
3、答:字节单元:(30022H)= AB H,(30024H)= EF H
字单元:(30021H)= AB34 H,(30022H)= CDAB H。
4、答:3017:000A的存储单元的物理地址是3017AH,
3015:002A的存储单元的物理地址是3017AH,
3010:007A的存储单元的物理地址是3017AH。
5、答:该程序的第一个字的物理地址是0AAA40H。
6、答:条件标志OF、SF、ZF、CF的值依次分别为0、0、0、0。
7、答:(1)AX、BX、CX、DX、AH、AL、BH、BL、CH、CL、DH、DL、
SP、BP、DI、SI(注意:学生尽量不要用SP参与加减运算)
(2)CX
(3)DX、AX、AH、AL
(4)CS、DS、ES、SS
(5)FLAGS
(6)IP
(7)SS、SP、BP
8、答:可以用来指示存储器地址的寄存器有BX、SP、BP、DI、SI、IP、CS、DS、
ES、SS。
9、答:唯一正确的是D。 .
第三章
2、答:
(1)ADD DX, BX
(2)ADD AL, [BX][SI]
(3)ADD [BX+0B2H], CX
(4)ADD [0524H], 2A59H
(5)ADD AL, 0B5H
3、答:
(1)MOV BX, OFFSET BLOCK + 0AH
MOV DX, [BX]
(2)MOV BX, 0AH
MOV DX, BLOCK[BX]
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
– 系统用结束伪指令装入。格式 :END 起始地址
– 通过分支指令修改时装入。如CALL、JMP等。
第四章 汇编语言
10
4.2.3、程序的结束 使用 END
第四章 汇编语言
11
4.2.4、数据定义及存储器的分配伪指令
汇编语言的数据种类: – 常量 – 变量 – 标号
第四章 汇编语言
12
变量:实际为内存单元的数据,并为该存储单元取 名字。其数据可以改变。
– None/PRIVATE:隐含值,表示本段与其他段无连接关系。
– PUBLIC:表示把相同段名、定位类型,组合类型也是PUBLIC的 段连接在一起,共同占用连续的存储单元,形成一个新段,重新 调整偏移量。
– COMMON:表示相同段名和组合类型也是COMMON的段是覆盖 的,共享最大的段存储区。
– STACK:产生一个堆栈段,并把相同段名的段连接成一个连续段, 系统自动设置SS为段的起始地址并初始化SP值。
– AT 表达式:表示本段的起始单元可定位在表达式所示“节”的 边界上。
– MEMORY:表示本段的存储地址在所有段的最高处。
• 类别名:在链接处理时,LINK把类别相同的段存放在连 续的存储区内。
VAR1
DB 12H
START ……
DS_DATA ENDS
INC VAR1
ES_DATA SEGMENT
INC VAR2
VAR2
DB 34H
INC VAR3
ES_DATA ENDS
CODE ENDS
CODE SEGMENT
END START
VAR3
DB 56H
ASSUME CS:CODE,DS:DS_DATA,ES:ES_DATA
变量的属性: 1、段属性:变量所在段址。
2、偏移地址属性:所在段的偏移地址。 3、类型属性:变量所占的字节数。
第四章 汇编语言
13
变量名 DB/DW/DD 表达式,表达式,…
功能: 为数据分配存储单元,并用变量名作为该
存储器的名称。
例:数值变量定义
DATA_BYTE DB 10,4,10H
DATA_WORD DW 100,100H,-5
第四章 汇编语言
9
3、段寄存器的装入
(1)DS、ES装入:通过程序装入:
– MOV AX,DATA_DS
立即数不能直接 传给段寄存器
– MOV DS,AX
(2)SS装入(SS、SP同时装入):
– 段定义伪指令组合类型用“STACK”时,系统自动装入。
– 程序装入,同(1)。
(3)CS装入:(CS、IP同时装入)
– PARA(节):隐含值。段从一个“节”的边界开始,16个字节为一 节,段起始地址低4位为0 。
– WORD(字):段从一个偶字节地址开始,段起始地址低1位为0 。 – BYTE(字节):段可从任一个地址开始。
第四章 汇编语言
7
• 组合类型:说明多个程序块连接时,本模块与其它模块的 同名段如何组合,有6种选择:
– 操作符:即指令的助记符,指明语句的功能。 – 操作数:指明指令的操作对象。 – 注释:任选段。以“;”开始
第四章 汇编语言
5
4.2.1、处理器选择伪操作
功能:指示汇编程序选择哪一种指令系统 主要有:
.8086 选择8086指令系统 .286 选择80286指令系统 .586 选择Pentium指令系统 .586P 选择保护方式下的Pentium指令系统
程序名.asm 程序名.obj 程序名.exe
汇编语言 源程序
目标码 程序
可执行的目 标码程序
编辑程序
汇编程序 连接程序
第四章 汇编语言
2
19
DATA SEGMENT
COSEG SEGMENT
2B
A B
DB DB
25 43
数 据
ASSUME CS:COSEG, DS:DATA,SS:
4C 00
C
DB 76 段 STACK1
8E
MOV AH,4CH
D8
INT 21H
…
COSEG ENDS
…
END START
B4
4C
CD
第四章 汇编语言
213
4.2、伪操作
• 汇编语言源程序由汇编语言语句组成: – 指令语句:也称可执行语句。每条语句都有对应的 目标代码,代表计算机具有的一个基本能力。 – 伪指令语句:用于指示汇编程序如何汇编源程序的 语句。部分语句产生目标代码,部分语句不产生目 标代码。 – 宏指令语句:为提高编程效率而使用的扩展指令。
…
Y
DB ?
DATA ENDS
START:MOV AX,DATA MOV DS,AX MOV AL,A
STACK1 SEGMENT PARA
STACK
堆
DW 20H DUP(0) STACK1 ENDS
栈 段
ADD AL,B SAL AL,1 SUB AL,C MOV Y,AL
…
B8
代 码
XX
段 XX
汇编语言清华大学沈美明
4.1、汇编语言的功能
汇编语言的建立及汇编过程
• 汇编语言是面向机器结构的低级程序设计语言,是把机 器语言符号化。
• 用汇编语言编的程序称为汇编语言源程序,源程序必须 经过“汇编”,生成目标代码,经过“连接”后生成执 行文件,方可直接运行。
• 汇编语言源程序结构:
• 例1:用汇编语言编写:求解Y=2(A+B)-C的程序
第四章 汇编语言
8
2、段寻址伪指令 • 语句格式:
ASSUME伪指 令没有对段寄
存器赋值
ASSUME 段寄存器名:段名,段寄存器名:段名,…
• 功能:指定当前段,及当前段的段寄存器名。
• 取消 ASSUME 设置: ASSUME [段寄存器名] :NOTHING。
例9: DS_DATA SEGMENT
第四章 汇编语言
6
ห้องสมุดไป่ตู้
4.2.2、段定义伪操作
1、完整的段定义伪指令 • 语句格式:
段名 SEGMENT [定位类型][组合类型][‘类别名’] 本段语句序列 (指令或数据) 段名 ENDS • 功能:在内存中设置一个逻辑段。 • 定位类型:表示某段装入内存时,对段起始边界的要求。 有四种选择:
– PAGE(页):段从一个“页”的边界开始,256个字节为一页,段 起始地址低8位为0。
• 指令语句与伪指令语句格式: [标识符] 操作符 操作数 [;注释]
– 标识符:任选段。指令语句为标号,以:结束。
• 字符个数为1~31个; • 第一个字符必须是字母、“?”、“@”、或“—”; • 不得使用系统保留字。
第四章 汇编语言
4
• 指令语句与伪指令语句格式:(续) [名字] 操作符 操作数 [;注释]