汇编语言程序设计第四章---汇编语言程序格式.ppt
1第四章汇编语言程序格式4.1汇编程序功能汇编语言程序的建立及汇编过程:编辑程序PROGR.ASM文件汇编程序连接程序PROGR.OBJ文件PROGR.EXE文件EDIT.exeNotepad.exeMASM.exeLINK.exeEXE程序还需经DEBUG的调试
2在计算机上运行汇编语言程序的步骤是:用编辑程序建立源文件:ex_movs.asm1〕;例:把40个字母a的字符串从源缓冲区传送到目的缓冲区。;PROGRAMTITLEGOESHERE-ex-movs;****************************************************datasegment ;definedatasegment source_bufferdb40dup(a)dataends;****************************************************extrasegment ;defineextrasegment dest_bufferdb40dup(?)extraends
3codesegment ;definecodesegment;----------------------------------------------------mainprocfar ;mainpartofprogram assumecs:code,ds:data,es:extrastart: ;startingexecutionaddress ;setupstackforreturn pushds ;saveolddatasegment subax,ax ;putzeroinAX pushax ;saveitonstack ;setDSregistertocurrent movax,data ;datasegmentaddr movds,ax ;intoDSregister ;setESregistertocurrentextrasegment movax,extra ;extrasegmentaddr moves,ax ;intoESregister
4;MAINPARTOFPROGRAMGOESHERE leasi,source_buffer ;putoffsetaddrofsourcebufferinSI leadi,dest_buffer ;putoffsetaddrofdestbufferinDI cld ;setDFflagtoforward movcx,40 ;putcountinCX repmovsb ;moveentirestring ret ;returntoDOSmainendp ;endofmainpartofprogram;----------------------------------------------------codeends ;endofcodesegment;**************************************************** endstart ;endofassembly
5用MASM程序把ASM文件转换成OBJ文件;2〕
6用LINK程序把OBJ文件转换成EXE文件;3〕
74〕经DEBUG的调试
8
9
10伪操作又称伪指令:是在汇编期间由汇编程序处理的操作不是机器指令,不是程序运行时执行的主要完成数据定义、分配内存、程序框架定义、指示程序结束等功能相似于高级语言的指示性语句
114.2.1数据定义及存储器分配伪操作助记符〔Mnemonic〕字段说明所用伪操作的数据类型,常用的有以下几种:双字〔32位〕字〔16位〕四个字〔64位〕,存放双精度浮点数。DB:字节〔8位〕DW:DD:DQ:十个字节,形成压缩的BCD码。DT:格式:[变量名]MnemonicOprand,…Oprand[;Comments]操作数〔Oprand)把数据放入指定的单元
12数据定义伪操作:把数据存入存储单元;分配空间;DW和DD可存储偏移地址或完整的地址。下面举例说明:0A041064000001FBFF3C00FDFF0000000010d10h4100d100h-560d0FFFDh例:操作数可以是常数,或