关于 MASM的补充
汇编语言的方式
? 完整的段定义方式
? 可完全控制汇编的全过程,并且可以用于所
有的汇编程序
? 针对某种特定的汇编语言程序的模型的
方式
? 仅适用于特定的
汇编语言的方式
? 完整的段定义方式
? 整个汇编语言源程序由若干个段定义构成
? 适用于所有的汇编语言的编译器
汇编语言的方式
? MASM方式
? MASM特有的伪指令
? 指令系统的选择
? 编程模型的选择
? 段的定义
? 程序的起始执行位置
? 过程的定义及现场的保护
? 返回 DOS(带状态的返回)
? 一个例子
汇编语言的存储方式
? TINY
? 数据、代码在同一个段内,.COM文件
? SMALL
? 一个 64KB的数据段和一个 64KB的代码段
? MEDIUM
? 一个 64KB的数据段、任意多个代码段
? COMPACT
? 一个含有程序的代码段、任意多个含有数据
的数据段
汇编语言的存储方式
? LARGE
? 任意多个代码和数据段
? HUGE
? 允许数据段大于 64KB
汇编语言的指令体系
缺省 支持 8086指令
.286 支持 80286指令
.386 支持 80386指令
……
段的定义
.DATA
.STACK n (n为分配的堆栈的字节数 )
.CODE
过程的定义
? 具有自动保存过程中使用的任何寄存器
的功能
MAIN PROC FAR USES AX BX
? 在子程序的入口自动将寄存器内容入栈
? 在返回主程序之前,自动弹出
起始指令
?,STARTUP (MASM6.X)
? START:MOV AX,@DATA
……
END START
返回 DOS
?,EXIT 0
?,EXIT
自动执行 INT 21H(4CH)号功能调用