- 3
- 0
- 约1.4万字
- 约 88页
- 2017-04-22 发布于湖北
- 举报
第6章 宏汇编语言程序设计;6.1 汇编语言程序格式 6.1.1 概念;完成两个字节数据相加。
DATA SEGMENT ; 伪指令语句
BUF1 DB 34H
BUF2 DB 2AH
SUM DB ?
DATA ENDS
CODE SEGMENT
ASSUME CS:CODE,DS:DATA
START:MOV AX, DATA ; 指令语句
MOV DS, AX
MOV AL, BUF1
ADD AL, BUF2
MOV SUM, AL
MOV AH, 4CH
INT 21H ;返回DOS
CODE ENDS
END START; ; 6.1.2 语句格式; 根据语句功能的不同, 名字项可用来表示段名、变量名、 标号、过程名等。; 名字的两种主要形式:标号和变量
标号:
在代码段中定义,后面跟着冒号“:”,标号作为目标操作数经常在转移指令或调用指令中出现,用以表示转向地址。
标号的三种属性:
段属性(SEGMENT):标号所在段的段基值。
偏移地址属性(OFFSET):标号所在地址与其所在段首址之间的偏移地址字节数。
类型属性(TYPE):反应转移过程中标号可转移的距离,类型NEAR为近标号,只能实现段内转移;类型FAR为远标号,可实现段间转移。;变量:
变量在数据段、附加段或堆栈段中定义,后面不跟冒号。变量通常指存放在存储单元中的值,在程序运行中是可以修改的。
变量的三种属性:
段属性(SEGMENT):变量所在段的段基值。
偏移地址属性(OFFSET):变量所在地址与其所在段首址之间的偏移地址字节数。
类型属性(TYPE):指变量中每个元素所包含的字节数,类型有:字节变量(BYTE)、字变量(WORD)及双字变量(DWORD)等。; 操作码可以是指令、伪指令中的助记符,用以指明操作的性质或功能。;操作数给出参与操作的数或数所在的地方。
操作数多于一个时,用逗号分开。
操作数可以是常数、寄存器、存储器操作数、变量、 标号、过程名或表达式(下一节介绍)等。;常数
给出具体的数据。可以是数字常量或字符常量。
数字默认十进制,也可加D表示十进制数。如 1234D, 1234
数字后加B表示二进制数。 如 1010B
数字后加H表示十六进制数。 如 1234H
字符常量,用单引号表示。 如 ‘1234’
汇编时,用字符对应的ASCII表示。如 31H, 32H, 33H, 34H; A、B、C、D、E、F开头的十六进制数前面加0,
与H结尾的标识符区别。
如 寄存器名AH、BH、CH、?DH
变量名 abcdH 等
例: mov AL, 0AH
mov AL, AH
mov BX, 0abcdH;由分号引出,用来说明语句或程序的功能。
汇编程序对分号后的内容不做处理。
作用: ①注释程序,增强程序可读性。
②可放在语句最前,暂时注释某语句,调试程序用。
例: 、、、
; MOV AH, 2 ;显示提示信息
; MOV DL, ’A’
; INT 21H
、、、; 表达式
表达式由运算对象(常量、标号、变量)及运算符组成。
汇编程序对表达式进行运算后,得到一个确定的数值,再把这个数值汇编到指令中。
运算结果可以是一个常数字,也可以是一个存储器的地址。故表达式分数字表达式、地址表达式。
表达式是指令或伪操作的操作数; 表达式中的操作符由汇编程序完成
例 MOV AX, 12 - 4 ;MOV AX, 8 ;数字表达式
LEA BX, [ string + 4 ] ;地址表达式 ;表达式中的操作符
有以下几类:
1). 算术运算符 ( +、-、*、/、MOD )
2). 逻辑运算符 ( AND、OR、NOT、XOR )
3). 关系运算符 ( EQ、NE、GT、GE、LT、LE )
真:FFFFH; 假: 0
4). 数值返回操作符 ( SEG、OFFSET、TYPE、LENGTH、SIZE )
5)
原创力文档

文档评论(0)