[工学]第4章 汇编语言程序格式

[工学]第4章 汇编语言程序格式

ID:27848124

大小:2.25 MB

页数:46页

时间:2018-12-04

[工学]第4章 汇编语言程序格式_第1页
[工学]第4章 汇编语言程序格式_第2页
[工学]第4章 汇编语言程序格式_第3页
[工学]第4章 汇编语言程序格式_第4页
[工学]第4章 汇编语言程序格式_第5页
资源描述:

《[工学]第4章 汇编语言程序格式》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、4.汇编语言程序格式4.1汇编语言伪指令4.2汇编语言数据4.3汇编语言上机与实验《微》第3章myfile.asm编辑程序(记事本等工具)汇编程序(汇编工具MASM等)连接程序(连接工具LINK等)myfile.crfotherfiles.objmyfile.lstmyfile.objmyfile.mapmyfile.exe汇编语言程序运行步骤及生成的文件汇编语言程序格式标号指令寄存器说明程序或语句变量伪指令标号的功能宏指令变量常数表达式源程序的每条语句可表示为:[名字]操作操作数[;注释]例:;子程序GETADR

2、;功能:接收用户输入的段值或偏移(即接收四位的十六进制数);入口参数:BUFFERGETADRPROCGETADR1:CALLGETSTR;调用子程序GETSTR,接收一个字符串CMPBUFFER,CR;判断字符串是否为空JNZGETADR2;非空CALLBELL;空,报警JMPGETADR1;重新接收字符串GETADR2:MOVDX,OFFSETBUFFER;获得BUFFER的偏移地址CALLBINTOH;调用子程序BINTOH,将BUFFER中的;段值或偏移转成十六进制数CALLNEWLINE;调用子程序NEW

3、LINE,实现换行RETGETADRENDP本章学习要求1、掌握几条重要的汇编语言伪指令。3、熟悉汇编语言上机方法,能够编写简单程序并利用MASM、LINK等工具进行实验。2、掌握汇编语言数据中的常量、变量、标号和表达式。4.1汇编语言伪指令(伪操作)汇编语言语句的分类:汇编语言有3种语句类型:指令语句、伪指令语句和宏指令语句。指令语句:(第3章)可执行语句,在汇编时产生可供机器执行的二进制目标代码。伪指令语句:不可执行语句,汇编时不产生目标代码。主要用于为变量分配存储单元、定义程序段等。宏指令语句:(补充材料一中

4、第七章)一、伪指令在汇编源程序中使用一些固定格式的约定符号,这些符号主要用来告诉汇编工具如何工作,这就是伪指令。伪指令和指令最大的区别有两点:伪指令是在汇编源程序汇编期间,被汇编工具识别并解释。主要是为变量申请内存空间、建立堆栈、告诉汇编工具从何处开始汇编以及到何处结束等。而指令是在程序执行期间被CPU译码并执行的。汇编结束后伪指令就完成任务,在程序执行期间不再考虑它,因此伪指令不翻译成目标码。而可执行指令经汇编工具汇编后,变成机器可以识别并执行的目标码。汇编语言伪指令包括有:1、数据定义伪指令2、符号定义伪指令3

5、、段定义伪指令4、段使用设定伪指令ASSUME5、程序结束伪指令END6、置汇编地址计数器伪指令ORG1、数据定义伪指令格式:[变量名]数据定义符参数表功能:定义数据存储区,其类型由所使用的数据定义符指定变量名:用户自定义,可选。若有,则变量名指向第一个字节的偏移地址。数据定义符:可以是DB、DW、DD、DF、DQ或DT。参数表:包含一个或多个参数,可以是表达式、?或重复操作符DUP。例:分析下列语句执行后存储器的情况:COUNTDB100DB0DH,0AHBUFFDB5,?,?MESSDB‘HELLO!’BUFF

6、ERDB2DUP(‘BA’)数据段COUNT100‘B’‘!’‘H’50A0D‘E’‘A’‘B’‘A’BUFFMESSBUFFER2、符号定义伪指令等价伪指令EQU格式:符号名EQU表达式用户可以自己定义一些符号来表示程序中经常使用到的数值或表达式。类似C语言中的宏定义,#definePI3.14125功能:为常量、表达式及其他各种符号定义一个等价的符号名,但它并不申请分配存储单元。例如:DATAEQU15BEQUBX等号伪指令=格式:符号名=表达式功能:与EQU类似,不同的是等号伪指令能对所定义的符号名再重新定义

7、,当使用等号语句连续定义同一符号名时,以最后一次定义的值为准。3、段定义伪指令汇编语言的源程序由若干个段组成,段定义伪指令用于定义段。datasegment;定义数据段…dataends;----------------------------------------extrasegment;定义附加段…extraends;----------------------------------------codesegment;定义代码段assumecs:code,ds:data,es:extrastart:mova

8、x,datamovds,ax;段地址段寄存器…codeendsendstart段开始和结束:每个段都有段头和段尾,分别表示段的开始和结束。格式:段名SEGMENT[定位方式][定位类型][‘类别’]……段名ENDS说明:段名:用户自定义名称,用来指出为该段分配的存储区起始位置。一个程序可以定义为若干段,段名可以各不相同,也可以重复,汇编工具会将一个程序中的

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。