- 1、本文档共112页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
第4章顺序程序设计-gai
设问: 本章重点 4.1 汇编语言程序设计初步 举例: 编写一个汇编语言程序,实现下列公式计算。 假设X=4,Y=5 Z= (X+Y)×8-X 2 DATA SEGMENT ;数据段定义伪指令 X DW 4 ;定义X为字单元,值为4 Y DW 5 Z DW ? ;定义Z为空单元 DATA ENDS ;数据段结束 4.1.2 从源程序到可执行程序 图 汇编语言程序从输入到生成可执行文件过程 1.建立和生成的文件 2.汇编环境 3.上机步骤 4.调试程序 1.建立和生成的文件 (1)用户编写的源程序,源程序名自定、扩展名为.ASM (2)源程序经汇编程序MASM汇编(翻译)后生成二进制目标程序,文件名默认与源程序同名、扩展名为.OBJ (3)目标程序需要经过LINK连接生成可执行程序,文件名默认与源程序同名、扩展名为.EXE 2.汇编环境 最基本的汇编环境只需要两个文件:MASM.EXE和LINK.EXE。将这两个文件拷入到已经建好的文件夹(例如HB)中,并将文件夹HB放在硬盘根目录C :\>下 文本编辑软件可以用EDIT或者“记事本” 3.上机步骤 Ccd\ 退到根目录 Ccd hb 进入hb子目录 C:\hbedit abc.asm 编辑源程序 C:\hb masm abc.asm 汇编 C:\hb link abc.obj 连接 C:\hb abc.exe 执行 C:\hb debug abc.exe 调试 4.调试程序 -U 反汇编 -G 断点 执行程序 -D DS:0 查看数据段 -Q 退出 语句格式 指令性语句: 4.2 伪指令 4.2.1段定义伪操作 段定义伪指令 ASSUME伪指令 段定义伪指令 段定义伪指令可用来定义各种类型的段。 格式如下: 段名 SEGMENT [类型参数] …… 段名 ENDS SEGMENT和ENDS必须成对使用,表示段的开始和结束。 类型参数: (1)定位类型 PARA 该段的起始地址必须为小段的首地址,即段地址的十六进制数最低位为0 BYTE 该段可以从任意地址开始 WORD 该段必须从字边界开始,即段的起始地址为偶数 DWORD 该段必须从双字边界开始,即段地址的十六进制数最低位应为4的倍数 PAGE 该段必须从页边界开始,即段地址的十六进制数最低两位为00(能被256整除) 如果不指出定位类型,系统默认为PARA。 (2)组合类型 PRIVATE 该段为私有段,连接时不与其他同名段合并 PUBLIC 连接时可与其他模块中的同名段按顺序连接 成一个段 COMMON 表示该段与其他模块中的同名段有相同的起 始地址,如果连接将产生覆盖;连接后, 段的长度为同名段中的最长者 STACK 表示该段为堆栈段 AT 表达式 该段直接定位在表达式指出的位置上 如果不指定组合类型,系统默认为PRIVATE。 (3)类别标识 在引号中给出段的类型名,在连接时,类别标识相同的 段放在连续的存储区中。 例如,用’STACK’来标识该段为堆栈段 ASSUME伪指令 ASSUME伪指令用于指明段寄存器与段 的对应关系,格式为: ASSUME 段寄存器:段名,[段寄存器: 段名,…] 如果不使用ASSUME伪指令,系统就无法获知用户定义的段都有哪些,进而就不能正确地划分段。 4.2.2 数据定义伪指令 数据定义伪指令格式为: [存储单元名] DB(或DW、DD等伪指令) 操作数 其中: (1)存储单元可以起名也可以不要名字 (2)数据定义伪指令 DB 定义字节单元 DW 定义字单元 DD 定义双字单元 DQ 定义四字单元 DT 定义十字节单元 (3)操作数用于指出存储单元的内容即该单元的
文档评论(0)