当前位置:文档之家› 汇编语言清华大学沈美明

汇编语言清华大学沈美明


8E
MOV AH,4CH
D8
INT 21H

COSEG ENDS

END START
B4
4C
CD
第四章 汇编语言
213
4.2、伪操作
• 汇编语言源程序由汇编语言语句组成: – 指令语句:也称可执行语句。每条语句都有对应的 目标代码,代表计算机具有的一个基本能力。 – 伪指令语句:用于指示汇编程序如何汇编源程序的 语句。部分语句产生目标代码,部分语句不产生目 标代码。 – 宏指令语句:为提高编程效率而使用的扩展指令。
程序名.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第章 汇编语言64.2.2、段定义伪操作
1、完整的段定义伪指令 • 语句格式:
段名 SEGMENT [定位类型][组合类型][‘类别名’] 本段语句序列 (指令或数据) 段名 ENDS • 功能:在内存中设置一个逻辑段。 • 定位类型:表示某段装入内存时,对段起始边界的要求。 有四种选择:
– PAGE(页):段从一个“页”的边界开始,256个字节为一页,段 起始地址低8位为0。
• 指令语句与伪指令语句格式: [标识符] 操作符 操作数 [;注释]
– 标识符:任选段。指令语句为标号,以:结束。
• 字符个数为1~31个; • 第一个字符必须是字母、“?”、“@”、或“—”; • 不得使用系统保留字。
第四章 汇编语言
4
• 指令语句与伪指令语句格式:(续) [名字] 操作符 操作数 [;注释]
– STACK:产生一个堆栈段,并把相同段名的段连接成一个连续段, 系统自动设置SS为段的起始地址并初始化SP值。
– AT 表达式:表示本段的起始单元可定位在表达式所示“节”的 边界上。
– MEMORY:表示本段的存储地址在所有段的最高处。
• 类别名:在链接处理时,LINK把类别相同的段存放在连 续的存储区内。
第四章 汇编语言
9
3、段寄存器的装入
(1)DS、ES装入:通过程序装入:
– MOV AX,DATA_DS
立即数不能直接 传给段寄存器
– MOV DS,AX
(2)SS装入(SS、SP同时装入):
– 段定义伪指令组合类型用“STACK”时,系统自动装入。
– 程序装入,同(1)。
(3)CS装入:(CS、IP同时装入)
第四章 汇编语言
8
2、段寻址伪指令 • 语句格式:
ASSUME伪指 令没有对段寄
存器赋值
ASSUME 段寄存器名:段名,段寄存器名:段名,…
• 功能:指定当前段,及当前段的段寄存器名。
• 取消 ASSUME 设置: ASSUME [段寄存器名] :NOTHING。
例9: DS_DATA SEGMENT
– PARA(节):隐含值。段从一个“节”的边界开始,16个字节为一 节,段起始地址低4位为0 。
– WORD(字):段从一个偶字节地址开始,段起始地址低1位为0 。 – BYTE(字节):段可从任一个地址开始。
第四章 汇编语言
7
• 组合类型:说明多个程序块连接时,本模块与其它模块的 同名段如何组合,有6种选择:
– 系统用结束伪指令装入。格式 :END 起始地址
– 通过分支指令修改时装入。如CALL、JMP等。
第四章 汇编语言
10
4.2.3、程序的结束 使用 END
第四章 汇编语言
11
4.2.4、数据定义及存储器的分配伪指令
汇编语言的数据种类: – 常量 – 变量 – 标号
第四章 汇编语言
12
变量:实际为内存单元的数据,并为该存储单元取 名字。其数据可以改变。
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
汇编语言清华大学沈美明
4.1、汇编语言的功能
汇编语言的建立及汇编过程
• 汇编语言是面向机器结构的低级程序设计语言,是把机 器语言符号化。
• 用汇编语言编的程序称为汇编语言源程序,源程序必须 经过“汇编”,生成目标代码,经过“连接”后生成执 行文件,方可直接运行。
• 汇编语言源程序结构:
• 例1:用汇编语言编写:求解Y=2(A+B)-C的程序
– None/PRIVATE:隐含值,表示本段与其他段无连接关系。
– PUBLIC:表示把相同段名、定位类型,组合类型也是PUBLIC的 段连接在一起,共同占用连续的存储单元,形成一个新段,重新 调整偏移量。
– COMMON:表示相同段名和组合类型也是COMMON的段是覆盖 的,共享最大的段存储区。
变量的属性: 1、段属性:变量所在段址。
2、偏移地址属性:所在段的偏移地址。 3、类型属性:变量所占的字节数。
第四章 汇编语言
13
变量名 DB/DW/DD 表达式,表达式,…
功能: 为数据分配存储单元,并用变量名作为该
存储器的名称。
例:数值变量定义
DATA_BYTE DB 10,4,10H
DATA_WORD DW 100,100H,-5
– 操作符:即指令的助记符,指明语句的功能。 – 操作数:指明指令的操作对象。 – 注释:任选段。以“;”开始
第四章 汇编语言
5
4.2.1、处理器选择伪操作
功能:指示汇编程序选择哪一种指令系统 主要有:
.8086 选择8086指令系统 .286 选择80286指令系统 .586 选择Pentium指令系统 .586P 选择保护方式下的Pentium指令系统

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
相关主题