汇编语言程序设计的上机过程

上传人:xins****2008 文档编号:111094992 上传时间:2019-11-01 格式:DOC 页数:10 大小:98.50KB
返回 下载 相关 举报
汇编语言程序设计的上机过程_第1页
第1页 / 共10页
汇编语言程序设计的上机过程_第2页
第2页 / 共10页
汇编语言程序设计的上机过程_第3页
第3页 / 共10页
汇编语言程序设计的上机过程_第4页
第4页 / 共10页
汇编语言程序设计的上机过程_第5页
第5页 / 共10页
点击查看更多>>
资源描述

《汇编语言程序设计的上机过程》由会员分享,可在线阅读,更多相关《汇编语言程序设计的上机过程(10页珍藏版)》请在金锄头文库上搜索。

1、例 1.1 求平均数。试编写一程序:在数据段中定义一个5字节数据的数组array,把它们看作有符号数求其平均数,结果送avg内存单元。程序框图见图1.1:开始初始化地址指针si计数结束?结束YN计算平均值、保存赋值循环计数器cx,清累加器al,取数据累 加修改指针si 图1.1 例1.1的程序框图上机过程如下:1. 调用文本编辑程序Edit建立asm文件Edit是Dos系统环境下的编辑工具,当然读者也可以用其它的W32编辑工具如EditPlus、Ultra edit、NotePad等软件在Windows下来建立源文件。下面假设启动的是Dos操作系统或启动Windows切换到Command命令窗

2、口(为便于讨论下面均以Dos系统说明之),汇编语言上机的工作环境在E:masm子目录下。键入以下命令:E:masmeditsample.asm使用该命令建立以sample.asm为文件名的源文件如图1.2所示。然后,保存文件返回到Dos系统。;*data segment;定义数据段 array db 1,2,3,4,5 avg db ?data ends;*code segment;定义代码段;-main proc far;定义主过程 assume ds:data,cs:codestart:;程序的入口地址标号 push ds;以下3条指令为返回Dos系统做准备 xor ax,ax push

3、ax ; mov ax,data;装载Ds段寄存器 mov ds,ax ; lea si,array;设置数组的指针si mov cx,5;装载循环计数器cx mov al,0;累加器al清零next:;循环求累加和movdl,si add al,dl inc si loop next cbw;将al中的累加和扩展到ax mov bl,5 idiv bl;商在al中,余数在ah中 mov avg,al ; ret;返回到Dos系统main endp;主过程结束;-code ends;代码段结束;* end start;整个程序结束 ;图1.2 例1.1的源文件sample.asm2. 调用汇编

4、程序Masm对源文件汇编产生目标文件sample.obj键入以下命令:E:masm masmsample屏幕显示如下:Microsoft (R) Macro Assembler Version 5.00Copyright (C) Microsoft Corp 1981-1985, 1987. All rights reserved.Object filename sample.OBJ:Source listing NUL.LST:Cross-reference NUL.CRF: 50956 + 450516 Bytes symbol space free 0 Warning Errors0 S

5、evere Errors上述三个问题以回车作为默认回答,如汇编指示出错则须重新调用编辑程序修改错误,直至汇编通过为止。如调试时需要列表文件lst,则应在汇编过程中建立该文件。键入以下命令:E:masm masmsample屏幕显示如下:Microsoft (R) Macro Assembler Version 5.00Copyright (C) Microsoft Corp 1981-1985, 1987. All rights reserved.Object filename sample.OBJ:Source listing NUL.LST: smplCross-reference NUL

6、.CRF: 50414 + 451058 Bytes symbol space free 0 Warning Errors0 Severe Errors则生成smpl.lst列表文件,该文件是纯文本文件,可用编辑程序打开,以获得相应的汇编信息。还可以键入以下命令,可省略三个问题从而加速汇编。E:masm masmsample;屏幕显示如下:Microsoft (R) Macro Assembler Version 5.00Copyright (C) Microsoft Corp 1981-1985, 1987. All rights reserved. 50956 + 450516 Bytes

7、 symbol space free 0 Warning Errors0 Severe Errors3. 调用连接程序Link对目标文件连接产生可执行文件sample.exe键入以下命令:E:masm linksample屏幕显示如下:Microsoft (R) Overlay Linker Version 3.60Copyright (C) Microsoft Corp 1983-1987. All rights reserved.Run File SAMPLE.EXE:List File NUL.MAP:Libraries .LIB:LINK : warning L4021: no sta

8、ck segment上述三个问题以回车作为默认回答。该警告错误不影响连接的通过,已产生可执行文件sample.exe。以下命令可加速连接:E:masm linksample;屏幕显示如下:Microsoft (R) Overlay Linker Version 3.60Copyright (C) Microsoft Corp 1983-1987. All rights reserved.LINK : warning L4021: no stack segment4. 调用调试程序Debug对可执行文件调试、运行本程序执行结果没有送往显示器输出,因此,不能从Dos系统运行,否则看不到结果,只能通

9、过Debug装载运行查看内存内容。键入以下命令:E:masm Debugsample.exe屏幕显示如下:-Debug以短横作为应答,此时,Debug已将可执行程序sample.exe装入内存,进入调试运行状态。一般先反汇编,将机器码反汇编成汇编语言指令,提供一些相关的调试信息。命令如下:-u0B40:0000 1E PUSH DS0B40:0001 33C0 XOR AX,AX0B40:0003 50 PUSH AX0B40:0004 B83F0B MOV AX,0B3F0B40:0007 8ED8 MOV DS,AX0B40:0009 8D360000 LEA SI,00000B40:00

10、0D B90500 MOV CX,00050B40:0010 B000 MOV AL,000B40:0012 8A14 MOV DL,SI0B40:0014 02C2 ADD AL,DL0B40:0016 46 INC SI0B40:0017 E2F9 LOOP 00120B40:0019 98 CBW0B40:001A B305 MOV BL,050B40:001C F6FB IDIV BL0B40:001E A20500 MOV 0005,AL其中第一列为代码段的段地址0B40H,该值由系统自动分配;第二列为代码段内的偏移地址,后面所选断点只能从这一列根据需要选取;第三列为机器语言指令;最后是汇编语言的符号指令。输入如下命令,接着前面继续往后反汇编。-u0B40:0021 CB RETF0B40:0022 40 INC AX0B40:0023 50 PUSH AX0B40:0024 8D4680 LEA AX,BP-800B40:0027 50 PUSH AX0B40:0028 8D867AFE LEA AX,BP+FE7A0B40:002C 50 PUSH AX0B40:002D E8E270 CALL 71120B40:0030 83C406 ADD SP,+060B40:0033 B8C805 MOV AX,

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 大杂烩/其它

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号