文档介绍:汇编程序功能
伪操作
汇编语言程序格式
汇编语言程序的上机过程
第4章汇编语言程序格式
1. 程序运行步骤及生成的文件
编辑程序
汇编程序
连接程序
建立, 运行汇编语言程序
C>EDIT MYFILE . ASM
C>MASM MYFILE . ASM
Microsoft (R) Macro Assembler Version
Copyright (C) Microsoft Corp 1981, rights reserved.
Object filename []:
Source listing []:
Cross-reference []:
47962 + 413345Bytes symbol space free
0 Warning Errors
0 Severe Errors
C>LINK MYFILE . OBJ
Microsoft (R) Overlay Linker Version
Copyright (C) Microsoft Corp 1983-1988. All rights reserved.
Run File []:
List File []:
Libraries [.LIB]:
LINK : warning L4021: no stack segment
C>MYFILE
2. 汇编程序功能
汇编程序的主要功能:
检查源程序,给出出错信息。
产生目标文件(.obj)和列表文件(.lst)。
展开宏指令。
3. 伪操作(伪指令)
伪操作是汇编程序对源程序进行汇编时处理的
操作,完成处理器选择、存储模式定义、数据定义、
存储器分配、指示程序开始结束等功能。
处理器选择伪操作
段定义伪操作
程序开始和结束伪操作
数据定义及存储器分配伪操作
表达式赋值伪操作
地址计数器与对准伪操作
基数控制伪操作
Directives
.8086 选择 8086 指令系统
.286 选择 80286 指令系统
.286P 选择保护模式下的 80286 指令系统
.386 选择 80386 指令系统
.386P 选择保护模式下的 80386 指令系统
.486 选择 80486 指令系统
.486P 选择保护模式下的 80486 指令系统
.586 选择 Pentium 指令系统
.586P 选择保护模式下的 Pentium 指令系统
◆处理器选择伪操作:
◆段定义伪操作:
完整的段定义格式
data segment ; 定义数据段
…
data ends
;----------------------------------------
extra segment ; 定义附加段
…
extra ends
;----------------------------------------
code segment ; 定义代码段
assume cs:code, ds:data, es:extra
start:
mov ax, data
mov ds, ax ; 段地址段寄存器
…
code ends
end start
PSP
DS
ES
SS
CS
EXE程序的内存映象图
装入模块
文件头
……
code segment
main proc far
assume ……
start:
push ds
mov ax, 0
push ax
……
ret
main endp
code ends
end start
……
code segment
main proc far
assume ……
start:
……
……
mov ax,4c00h
int 21h
main endp
code ends
end start
段名 SEGMENT [定位类型] [组合类型] [使用类型] [‘类别’]
……
……; 语句序列
段名 ENDS
定位类型 align_type
PARA BYTE WORD DWORD PAGE
bine_type
PRIVATE MON STACK AT exp
使用类型 use_type
USE16 USE32
(4) 类别‘class’
存储模式与简化段定义伪操作
(1) MODEL 伪操作
.