汇编语言部分内容程序设计

汇编语言部分内容程序设计

ID:42020328

大小:778.06 KB

页数:71页

时间:2019-09-06

汇编语言部分内容程序设计_第1页
汇编语言部分内容程序设计_第2页
汇编语言部分内容程序设计_第3页
汇编语言部分内容程序设计_第4页
汇编语言部分内容程序设计_第5页
资源描述:

《汇编语言部分内容程序设计》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、汇编语言程序设计AssemblyLanguageProgramming第三章汇编语言程序格式本章结构汇编语言程序格式逻辑段逻辑段逻辑段语句语句语句伪指令语句指令语句宏指令语句指令助记符操作数伪指令助记符寻址方式表达式指令助记符本章结构汇编语言程序格式逻辑段逻辑段逻辑段语句语句语句伪指令语句指令语句宏指令语句指令助记符操作数伪指令助记符寻址方式表达式指令助记符1.汇编语言程序结构汇编语言源程序由一个或多个逻辑段组成。一个程序中可以有几个同一类型的逻辑段。必须至少有一个代码段。源程序的结束标志——“END

2、”语句[注]源程序分段的目的在于程序结构清晰、便于内存分配,寻址方便,一个源程序需要设置几个段应根据具体问题来定。逻辑段一个逻辑段由若干条汇编语言语句组成逻辑段的类型程序段(代码段)——主要由指令语句组成,完成源程序的功能。数据段——定义数据及符号的伪指令组成。附加段——定义数据及符号的伪指令组成。堆栈段——定义堆栈伪指令组成。语句语句类型:指令——使CPU产生动作、并在程序执行时才处理的语句,就是第3章学习的处理器指令伪指令(Directive)——不产生CPU动作、在程序执行前由汇编程序处理的说明

3、性语句,例如,数据说明、变量定义等等宏指令语句——可执行语句2.伪指令伪指令语句——非执行语句,用来指示编译器进行编译的语句,没有机器代码对应。伪指令与具体的处理器类型无关,但与汇编程序的版本有关伪指令分类变量定义语句符号定义语句LABEL伪指令段定义语句段类型说明语句程序结束伪指令过程定义语句起始地址和对准语句$-地址计数器(1)数据定义语句格式:[变量]DB/DW/DD/DF/DQ/DT操作数1,…,操作数n功能:定义变量;在内存中分配一组存储单元;并对单元进行初始化。分类DB:用来定义字节,其后

4、每个操作数占用一个字节。DW:用来定义字,其后每个操作数占用一个字。DD:用来定义双字,其后每个操作数占用两个字。DQ:用来定义四个字,其后每个操作数占用四个字。DT:用来定义十个字节,其后每个操作数占用十个字节。操作数常数或一组常数或数值表达式;例如:DATADB2,100*2-5,0,-1一组字符串如:STRINGDB‘Thisisastring’02H19500FFHDATA‘T’‘h’‘i’…..‘g’STRING操作数变量名ADDR1DWBLOCK;BLOCK偏址放在ADDR1单元ADDR2

5、DDBLOCK;BLOCK的偏址和段址依次存放在ADDR2四字节单元中。一组“?”只分配空间,不进行初始化例如:BLOCKDW?,?;分配两个字节,但为随机值操作数重复DUP语句格式:重复数nDUP(重复内容)功能:将DUP后的内容重复定义n次。例如:BLOCKDB3DUP(0,1,-1)如同:BLOCKDB0,1,-1,0,1,-1,0,1,-1[注]DUP语句中可以包含DUP语句。BLOCK00H01H0FFH00H01H0FFH00H01H0FFHNOTICE汇编语言强类型!变量有类型!BUFF

6、ERDW1234HMOVAL,BUFFERMOVAL,BYTEPTRBUFFERMOVAX,BUFFER(2)符号定义语句EQU格式:<符号名>EQU表达式符号名——符号常数表达式——数值表达式或者字符串功能:出现符号的地方进行替换;不分配空间;相当于C语言的Define宏。例如:XXEQU1*10-2DATAEQU[1000H]MOVAX,XX*2;16AX(2)符号定义语句==<符号名>=数值表达式例如:ZERO=0“EQU”不能对同一个符号进行二次定义,但符号定义为指令“=”可以。(3)LAB

7、EL格式:符号名LABEL类型类型:BYTE,WORD,DWORD,…,NEAR,FAR功能:从当前位置的地址强制转化为“类型”来定义“符号”,并不分配内存空间,但定义变量或者标号。例子:databytelabelbytedataworddw1,2,3;databyte和dataword地址一样,但是类型不同。labelfarlablefarlabelnear:moval,bl;labelfar与labelnear地址一样,但是类型不同。;Labelfar用于段间转移(4)段定义伪操作-完整段定义段名

8、segment[对齐][组合][‘类别’]...;语句序列段名ends完整段定义由SEGMENT和ENDS这一对伪指令实现,SEGMENT伪指令定义一个逻辑段的开始,ENDS伪指令表示一个段的结束段名对外表现为立即数,为该段的段地址STACK定义堆栈段:自动给SS和SP赋值段定义指令后的3个关键字用于确定段的各种属性,P186,多模块程序再讲。(5)段类型说明伪操作在代码段开始必须用ASSUME伪操作声明段和寄存器之间的关系,格式为:ASSUME段寄存器

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

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

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