- 1、本文档共128页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
第3章__汇编语言程序设计课件
第3章 汇编语言程序设计; 三种层次的计算机语言:
机器语言:用二进制数表示指令和数据,计算机可直接理解和执行,速度快,占用内存少,但不直观,不宜理解和记忆。
汇编语言: 用助记符来书写指令,地址、数据也可用符号表示,执行速度快,编写、阅读和修改比较方便,需要汇编成机器语言。
高级语言:不针对某个具体的计算机,通用性强。不需要了解计算机内部的结构和原理,易读、易编,需要编译成机器语言。;汇编语言:一种采用助记符表示的程序设计语言,即用指令助记符表示指令的操作码和操作数,用符号或标号表示地址、常量或变量,与机器代码相对应。
汇编语言源程序:用汇编语言编写的程序。
宏汇编程序 MASM.EXE
功能:检查源程序中语法的正确性,将汇编语源程序翻译成由机器代码组成的目标程序。 ?;汇编语言上机环境;例:有两个5字节数3B74AC60F8H、20D59E36C1H分别放在自DATA1和DATA2开始的存储区中,低字节在低地址处,编一程序段将两数相加,结果存放于从DATA1开始的单元中。;汇编语言源程序的格式;汇编语言的两种基本语句;汇编语言语句组成
[名字] 操作码/伪操作 [操作数] [;注释]
分为4部分,各部分之间至少要用一个空格作为间隔。
操作码是一个助记符,它可以是指令、伪指令(又叫伪操作)或宏指令。
操作数由寄存器、存储单元、数据项或其表达式构成。汇编时一个表达式得到一个值。
注释用来说明程序或语句的功能,用分号;作为注释开始。
其中名字和注释视情况而定,可有可无。;⒊2.3 名字(标号或变量)
名字是由程序员建立起来的有特定意义的字符系列,由英文字母、数字及专用字符组成,最大长度不能超过31个,且不能由数字打头,不能用保留字(如寄存器名,指令助记符,伪指令)。
1)标号
符号地址,表示一条指令所在的地址,常用作转移指令(包含子程序调用指令)的操作数,即目标地址。;标号的三个属性:
(1)段属性(SEGMENT):表示标号所在段的段地址
(2)偏移属性(OFFSET):表示标号的偏移地址
(3)距离属性(类型属性TYPE):表示标号作为段内或
段间的转移属性;2)变量名、段名、过程名
变量——通常是存放在某些存储单元的数据,这些数据在程序运行期间可以修改。;3.2.4 助记符和伪操作
助记符(指令性语句):指令系统中的助记符。
伪操作(指示性语句);3.2.5 操作数
常数、寄存器、标号、变量和表达式
?1.常数
常数——没有任何属性的纯数值。在汇编期间,它的值已经完全确定,而且在程序的运行中也不会发生变化。它可以有以下几种类型:;⑷十六进制数:以字母H结尾,由若干个0到9的数字和字母A到F组成的序列,且必须以数字开头。例如:56H,0B3FH。
⑸字符串常数:用引号括起来的一个或多个字符。这些字符以ASCII 码形式存在内存中。例如‘A’的值是41H,而‘B’的值是42H。;2.寄存器
8位寄存器:
AH,AL,BH,BL,CH,CL,DH,DL
16位寄存器 :
AX,BX,CX,DX,SI,DI,BP,SP,DS,ES,SS,CS,IP;5.表达式与运算符;运算符主要包括以下6种类型:
1) 算术运算符?
包括:+、-、*、/、MOD(求余)、SHL(左移)
和右移(SHR)
例:CONT = 14*4
CONT = CONT/8
MOV AL, 21H SHL 2 ;3)关系运算符
包括:EQ(相等)、NE(不相等)、
LT(小于)、GT(大于)、
LE(小于或等于)、GE(大于或等于)。
结果:若关系为假(不成立),结果为0;
若关系为真(成立),结果为0FFH或0FFFFH。
例: MOV BX,2 LT 5 ;BX=0FFFFH
例: MOV AX,4 EQ 3 ;AX=0;4)分析运算符
分析运算符用以分析一个存储器操作数的属性,如段、偏移量或类型等;
⑴ 取地址的偏移量
格式:OFFSET 变量名或标号
功能:取变量名或标号所在段的段内偏移量。
MOV SI,OFFSET DATA1
⑵?? 取段地址
格式:SEG 变量名或标号
功能:取变量名或标号所在段的段地址。
MOV AX,SEG DATA1
MOV DS,AX
注意:SEG、OFFSET只能对符号地
文档评论(0)