汇编语言程序设计基础.doc

汇编语言程序设计基础.doc

ID:50241832

大小:153.00 KB

页数:7页

时间:2020-03-05

汇编语言程序设计基础.doc_第1页
汇编语言程序设计基础.doc_第2页
汇编语言程序设计基础.doc_第3页
汇编语言程序设计基础.doc_第4页
汇编语言程序设计基础.doc_第5页
资源描述:

《汇编语言程序设计基础.doc》由会员上传分享,免费在线阅读,更多相关内容在工程资料-天天文库

1、第4章汇编语言程序设计基础1.教学目的:掌握微型汇编语言格式和程序设计方法2.教学要求:%1熟悉汇编语言程序的结构、语句类型和格式。%1熟悉数据项及表达式,要求能明确区分标号和变量。%1熟悉各类伪指令,要求掌握常用伪指令格式和应用。3.教学重点:%1指令语句格式和伪指令语句格式%1汇编语言程序格式。4.掌握难点:%1伪指令%1伪指令存储器分配技术5.教学进程安排:P102-1336.教学方法:课堂讲授7.教学内容摘要:4.1汇编语言语句格式4.1.1程序格式datasegment……:数据定义dataendscodesegmentm

2、ainprocfarassumecs:codecs:datastart:movax,datamovdszaxpushds]subaxzaxrpushaxJretmainendpcodeendsendstart92完整格式加末写,则movax,4c00hInt21hDOS调用2:25简化格式.modelsmall.data……;数据定义.stack.codestart:movax,@datamovds,axmovaxz4c00hInt21hendstart4.1.2语句格式指令语句和伪指令语句的格式是类似的,格式如下:[名字]操作码操

3、作数[;注释]1.名字⑴名字的标识符⑵名字的定义规则⑶名字的2种主要形式%1标号屈性:段属性:标号所在的段地址,即CS的内容。偏移属性:标号在代码段的偏移地址。类型属性:段内Near或者段间Far%1变量属性:段属性:变量名所在的段地址,DS,ES或SS偏移属性:变最名的偏移地址。类型属性:字节DB,字DW或者双字DD1.操作码2.操作数⑴常数⑵表达式%1算术运算符%1逻辑运算符%1关系运算符3.注释项4.2伪指令机器指令:程序运行期间由计算机来执行.伪操作(伪指令):在汇编程序(MASM)对源程序汇编期间由汇编程序处理的操作。4.

4、2.表达式赋值伪操作1.等值伪指令EQU格式:〈符号名〉EQU〈表达式〉2.等号伪指令二EMP=7EMP二EMP+13.解除定义伪指令PURGE格式:PURGE〈符号1,符号2,…,符号N>注:①EQU:表达式名不允许重复定义;②二:允许重复定义。DATAEDATAD4.2.2定义数据的伪指令[变量]助记符操作数,…,操作数[;注释],)AT/功能:为操作数分配存储单元,并用变量与存储单元建立联系。DB、DW、DD、DQ、DT0ACA0410640000U1FBFF0010dBYT100dWORlOOh60dDW4lOhOFFFDh

5、DATABYTEDB10,4,10HDATAWORDDW100,100H,DATADWDD3C,OFFFDII【例4-2】操作数可以是常数,或者是表达式(根据该表达式可以求得一个常数),如图4.1例4-2的汇编结果汇编程序可以在汇编期间在存储器中存入数据,汇编后的内存分布如图4.1所示。【例4-3】操作数也可以是字符串,如:MESSAGEDB'HELLO'则存储器存储情况如图4.2(1)所示,而DB和DW的存储情况则分别如图4.2⑵和⑶所示.【例4-4】操作数?可以保留存储空间,但不存入数据。如:ABCDB0,?,?,0DEFDW?

6、,52,?经汇编厉的存储情况如图4.3所示。4811ELz1d4C4CL4F0MESSAGE(1)字符串的存储A13(2)DB、AB‘BA(3)DW'AB'图4.2例4-3的汇编结果【例4-5】使用DUP实现重复定义ARRAY!DB2DUP(0,1,2,?)ARRAY2DB100DUP(?)汇编后的存储情况如图4.4所示。由图可见,例4-5屮的第一个语句和语句ARRAY1DB0,1,2,?,0,1,2,?是等价的。52d100个字节图4.3例4-4的汇编结果图4.4例4-5的汇编结果4.2.3定义程序开始和结束的伪指令在程序的开始可

7、以用NAME或TITLE作为模块的名字。1NAMEmodulename说明:汇编程序将以给出的modulename作为模块的名字。2、TITLEtext说明:指定列表文件的每一页上打印的标题注:①如程序中没使用NAME伪操作,则汇编程序将用text(最多可有60个字符)中的前6个字符作为模块名;②如程序屮即无NAME乂无TITLE伪操作,则将用源文件名作为模块名。3、END[label]说明:源程序结束伪操作。注:①label指示程序开始执行的起始地址;②如多个程序模块相连,则只有主程序要使用标号,其它子程序只用END而不必指定标号

8、。4、MASM6.0版的汇编程序增加了定义程序的入口点和出口点的伪操作.STARTUP:定义程序的初始入口点,并且产生设置DS,SS和SP的代码。.EXIT:用來产生退出程序并返冋操作系统的代码,格式:格式:EXIT[returnva

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

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

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