- 1、本文档共130页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
f汇编语言(第2版)第的4章
第四章 汇编语言程序组织;第四章 主要要求;4.1 汇编语言语句格式;语句格式; 名字域是语句的符号地址。可以由大小写英文字母、0~9数字、_、$、@、?等字符组成。名字不能以数字开头。
指令的名字叫做标号,必须以冒号结束。它提供给循环或转移指令的转向地址。
伪指令的名字可以是变量名、过程名、段名等。
名字具有三属性:段基址、偏移量和类型。
标号的类型有NEAR型和FAR型,
变量的类型有字节、字、双字、四字等。;助记符域:给出操作的符号表示。
可以是指令助记符或伪指令助记符等。例如加法指令的助记符是ADD。变量定义伪指令DW等。
操作数域:为操作提供必要的信息。
在执行语句中每条指令语句的操作数个数已由系统确定,例如加法指令有两个操作数。
在说明性语句中的参数大多由程序员根据需要确定,参数之间用逗号隔开。
注释域:用以说明本条语句在程序中的功能
注释以分号(;)开始,要简单明了。;4.2 汇编语言源程序结构;汇编语言源程序的组成原则;.exe程序;图4.1 exe程序的内存映象图;.com程序;图4.2 com程序的内存映象图;;sampl1.asm(文件名)
stack segment stack ;定义堆栈段
dw 512 dup(?) ;堆栈段有512字空间
stack ends ;堆栈段结束
data segment ;定义数据段
string db ’Hello, Everybody !’,0dh,0ah,’$’
data ends
code segment ’code’ ;定义代码段
assume cs:code,ds:data,ss:stack
start: mov ax,data ;建立DS段地址
mov ds,ax
mov dx,offset string
mov ah,9
int 21h
mov ax,4c00h
int 21h ;利用功能调用返回DOS
code ends ;代码段结束
end start ;汇编结束,指明程序起始点;stack segment stack
dw 512 dup(?)
stack ends
data segment
... ;在数据段定义数据
data ends
code segment ’code’
assume cs:code,ds:data,ss:stack
start: mov ax,data
mov ds,ax
... ;在代码段填入指令序列
mov ax,4c00h
int 21h
code ends
end start; CODE SEGMENT
ORG 100H
ASSUME CS:CODE,DS:CODE
MAIN PROC NEAR
JMP START
A DW 123
B DW 456
SUM DW ?
START: MOV AX,A
ADD AX,B
MOV SUM,AX
MOV AX,4C00H
INT 21H
MAIN ENDP
CODE ENDS
END MAIN;功能:将当前偏移地址指针指向参数表达的偏移地址。
说明:在汇编程序对源程序汇编的过程中,使用地址计数器保存当前正在汇编的语句地址(段内偏移量),汇编语言允许用户直接用$引用地址计数器的当前值。
例1.ORG 100H
;设置地址计数器的值为100H
例2.ORG $+6
; MASM中,符号“$”表示当前偏移地址值。
;使偏移地址加6,跳过6个字节的存储空间;; sampl1a.asm(文件名)
.model small ;定义程序的存储模式
.stack ;定义堆栈段
.data ;定义数据段
string db ’Hello, Everybody !’,0dh,0ah,’$’
;在数据段定义要显示的字符串
.code ;定义代码段
.startup ;程序起始点,建立DS、SS内容
mov dx,offset string ;指定字符串的偏移地址
mov ah,9
int 21h ;利用功能调用显示信息
.exit 0 ;程序结束点,返回DOS
end ;汇编结束; .model small
.stack
.data
... ;在数据段定义数据
.code
.startup ;(注1)
... ;在代码段填入指令序列
.exit 0 ;(注2)
end ;(注3);对MASM 5.x的说明;4.3 常用伪指
您可能关注的文档
最近下载
- 少年儿童政治启蒙的内涵、特点与培养路径.docx
- 《国际性教育技术指导纲要》修订版-封面及目录.pdf VIP
- [译林版]6下Unit3 A healthy diet精心梳理教案.pdf
- 十年(2015-2024)高考真题数学分项汇编(全国通用)专题10 三角恒等变换与解三角形小题综合(教师卷).docx
- 成都小升初数学历年真题.doc VIP
- 国防军事展览可行性方案.pptx
- 2015-2024年十年高考数学真题分类汇编专题10 三角恒等变换与解三角形小题综合(原卷版).docx
- 第6章-隧道洞口与洞门设计[65页].pptx VIP
- 第十章 晚唐诗歌.ppt VIP
- 第十章晚唐诗歌.ppt VIP
文档评论(0)