- 1、本文档共92页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
第5章 汇编语言程序设计 汇编语言程序的步骤: (1)明确任务,确定算法。 (2)绘流程图。 (3)根据流程图编写汇编语言程序。 (4)上机调试程序。 5.1 汇编语言程序的上机过程 1、源文件的建立和汇编 (1)建立源程序文件 (2)汇编源程序文件 汇编程序主要功能: ·检查源程序中的语法错误并给出出错信息。 ·产生目标文件,列表文件和对照文件。 ·展开宏指令。 汇编操作过程: 设在当前C盘上已经建立了一个扩展名为ASM的源程序文件MYASM,汇编时发出如下命令: C:>MASM MYASM ↙ (或MASM MYASM.ASM ↙) 具体的三个输入提示行显示如下: Object Filename [MYASM.OBJ]:↙ Source Listing [NUL.LST]:(可打入源文件名或省略)↙ Cross Reference [NUL.CRF]:(可打入源文件名或省略)↙ 汇编程序对源文件进行汇编,若无错误信息则显示如下结果: 0 Warning Errors 0 Severe Errors 2.目标文件的链接 连接软件LINK的功能: 1)找到要连接的所有目标文件; 2)确定所有段的地址值; 3)确定所有浮动地址和外部符号所对应的存储地址; 4)生成.EXE可执行文件。 连接软件为 LINK.EXE,其过程如下: 设源文件MYASM.ASM已经由汇编软件汇编后生成MYASM.OBJ,其连接命令为: C:>LINK MYASM 或 LINK MYASM.OBJ 则在屏幕上显示连接软件的版本号和三个输入提示行,三个输入提示行显示如下: Run File [MYASM.EXE]: List File [NUL.MAP]: Libraries [.LIB]: 3.执行文件的调试 5.2 顺序结构程序设计 例5.1 用8086CPU的指令实现两个32位无符号数乘法的程序设 计。 1)明确任务,确定算法。 2)绘流程图(图5.3) 3)根据流程图编写汇编语言程序 1 NAME 32 BIT MULTIPLY 2 DATA SEGMENT 3 MULNUN DW 0000,0FFFFH,0000, 4 0FFFH,4 DUP(?) 5 DATA ENDS 6 STACK SEGMENT PARA STACK’STACK’ 7 DB 100 DUP(?) 8 STACK ENDS 9 CODE SEGMENT 10 ASSRME CS:CODE, DS:DATA, 11 SS:STACK,ES:DATA 12 MAIN PROC FAR 13 START: PUSH DS 14 MOV AX, 0 15 PUSH AX 16 MOV AX, DATA 17 MOV DS, AX 18 MOV ES, AX 19 LEA BX, MULNUM 20 MULU32: MOV AX,[BX] 21 MOV SI,[BX+4] 22 MOV DI,[BX+6] 23 MUL SI 24 MOV [BX+8],AX 25 MOV [BX+0AH],DX 26 MOV AX,[BX+2] 27 MUL SI 28 ADD AX,[BX+0AH] 29 ADC DX,0 30 MOV [BX+0AH],AX 31 MOV [BX+0CH],DX 32 MOV AX,[BX] 33 MUL DI 34 ADD AX,[BX+0AH] 35 ADC DX,[BX+0CH] 36 MOV [BX+0AH],AX 37 MOV [BX+0CH],DX 38 PUSHF 39 MOV AX,[BX+2] 40 MUL DI 41 POPF 42
文档评论(0)