理学第四章汇编语言程序设计.pptx
文本预览下载声明
1;1、8086汇编语言程序结构举例
DATA SEGMENT;定义一个段,名字为DATA
SUM DB 14H;定义字节单元
TAB DW 100 DUP(0);定义100个字单元
DATA ENDS;段定义结束
STCK SEGMENT STACK
DW 500 DUP(?)
STCK ENDS
CODE SEGMENT
ASSUME CS:CODE,DS:DATA,SS:STCK;START: MOV AX, DATA;DATA段地址传送AX
MOV DS,AX;赋给数据段寄存器
MOV AX,STCK ;STACK段地址传送AX
MOV SS,AX ;赋给堆栈段寄存器
CYCLE: MOV AL,01H
ADD SUM,AL
CMP SUM,100
JNZ CYCLE
MOV AL,SUM
CODE ENDS
END START;2、8086汇编语言源程序的格式
一个汇编源程序由多个段构成。
其一般格式为
NAME1 SEGMENT
语句 ……
NAME1 ENDS
NAME2 SEGMENT
语句 ……
NAME2 ENDS
……
END 标号;由多个段组成;
每个段有一个名字;
以符号SEGMENT作为段定义的开始,以ENDS作为段的结束;
整个源程序以语句 END 标号 结束;;4-2 语句的构成;2、语句的格式
指令语句的格式为:
标号: 指令; 注释
例如 CYCLE: ADD SUM,AL;两数相加
伪指令语句的格式:
名字 定义符 参数1,参数2,……;注释
例如 DATA SEGMENT;段定义
SUM DB 34H;定义字节
3、几点说明
指令语句的标号后用“:”分隔,指示性语句的名字之后为空格分隔。;指令语句的标号代表该指令的存放地址,即符号地址。在汇编时,将符号地址替换为实际地址。
指令语句的标号可任选或省略;而伪指令的名字可能是强制的、任选的或禁止的,不同语句有不同规定。
标号或名字可由最多31个字母、数字及字符?@_$等组成,不能以数字开头。
注释部分用“;”分隔,对语句功能加以说明,以提高程序可读性。注释可有可无。 ;8086系列汇编程序定义了5种指示性语句
(一)符号定义语句
1、等值语句EQU
格式:名字 EQU 符号或表达式
如 A EQU 2
COUNT EQU CX
功能:用名字代替右边的符号或表达式。目的是提高程序的可读性。在汇编时,汇编程序自动用被等值量代入。;2、解除语句PURGE
格式:PURGE 名字1,名字2,……
如 PURGE A,SIZE,COUNT
功能:对EQU定义的语句,用该语句解除定义。
(二)数据定义语句DB/DW/DD
名字 DB/DW/DD 表达式1,表达式2,……
功能:为数据项分配存储单元,用一个符号名代表这个存储单元偏移地址,并为这个数据项提供一个初值;; DB — 定义字节;DW — 定义字;
DD — 定义双字(32位);
如
MYDATA SEGMENT
ARRAY DB 10,7,3,5
sim DB ‘A’,’B’
BUF DW ?,1234H
MYDATA ENDS
;; 符号名可任选或省略;
表达式可以是:1)常数;2)?,表示不确定初值;3)字符串,用‘ ’表示,其数值为字符的ASCII码值;4)重复子句,重复次数为DUP;
如
AREA DW 100 DUP(?);重复定义100个字单元
TABLE DB 100 DUP(5 DUP(4), 7);4, 4, 4,4,
4, 7; 重复100次字节定义
TABLE1 DB 100 DUP(2, ?, 5 DUP(4), 7);
Tab dd 100 dup(200 dup (300 dup(0))); 例:定义字节型一维数组变量X、Y、Z,元素为10个;再定义二维数组W和简单变量S。令
X=(31H,32H,33H …… 3AH)、
Y =(9FH,8EH,7DH …… 06H)、
Z=X+Y;
二维数组
变量
编写程序实现上述功能。
; Data segmen
显示全部