实验一 熟悉汇编语言上机环境

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

实验一熟悉汇编语言上机环境

一、实验目的

熟悉在微机上建立、汇编、连接、调试和运行汇编语言程序的全过程。

二、实验要求

1.仔细阅读本实验教程的第一章和第二章;

2.学会使用EDIT建立汇编语言源程序文件;

3.学会使用MASM将汇编语言源程序编译为目标程序的两种方法;

4.学会使用LINK将目标程序连接为可执行程序的两种方法;

5.学会使用DEBUG中的U、D、G命令。

三、实验举例

【例3.1】 编辑、汇编、连接、执行下列程序,观察实验结果。

【程序功能】该程序的功能是利用BIOS功能调用,从键盘上接收若干个字符,并将它们的ASCII码与键盘扫描码以十六进制的形式显示出来,当按下+键时,停止程序的执行。

【步骤一】 用EDIT编辑源程序,并以EXAM1.ASM为文件名存入磁盘。

程序清单如下:

SSEG SEGMENT STACK

STK DB 80H DUP(?)

SSEG ENDS

CSEG SEGMENT

ASSUME CS:CSEG,SS:SSEG

HTOA PROC NEAR ;该子程序的功能是将AL内容转换为ASCII码

AND AL,0FH

CMP AL,10

JC HTOA1

ADD AL,07

HTOA1: ADD AL,30H

RET

HTOA ENDP

BHTOA PROC NEAR ;该子程序的功能是将AL内容转换为ASCII码

PUSH CX

MOV CH,AL

MOV CL,04

SHR AL,CL

CALL HTOA

MOV AH,AL

MOV AL,CH

CALL HTOA

POP CX

RET

BHTOA ENDP

DISASC PROCN EAR ;该子程序的功能是在光标处显示AL中的字符

PUSH AX

MOV AH,14

INT 10H

POP AX

RET

DISASC ENDP

DISAL PROC NEAR ;该子程序的功能是显示AL中的内容

PUSH AX

CALL BHTOA

XCHG AH,AL

CALL DISASC

MOV AL,AH

CALL DISASC

POP AX

RET

DISAL ENDP

BIOS: PUSH DS ;主程序

XOR AX,AX

PUSH AX

AGAIN: MOV AH,0

INT 16H

PUSH AX

CALL DISAL

MOV AL,'-'

CALL DISASC

MOV AL,AH

CALL DISAL

MOV AL,' '

CALL DISASC

POP AX

CMP AL,03H

JNZ AGAIN

MOV AH,4CH

INT 21H

CSEG ENDS

END BIOS

源程序输入完成后,按+键,用↑、↓键头选择Save As项保存文件,在出现对话框时输入EXAM1.ASM即可。

【步骤二】 用宏汇编程序MASM对汇编语言源程序EXAM1.ASM进行汇编,生成文件名为EXAM1.OBJ的目标程序。

操作如下:

C:>\MASM EXAM1;↙

屏幕显示如下信息:

Microsoft Macro Assembler Version 5.00

Copyright Microsoft Corp 1981-1985,1987. All rights reserved.

EXAM1.ASM(10): error A2009: Symbol not defined: HTOA1

EXAM1.ASM(12): error A2105: Expected: instruction or directive

50542 + 449842 Bytes symbol space free

0 Warning Errors

2 Severe Errors

C:>\

上述信息提示在EXAM1.ASM文件的第10、12行分别有2个语法错误。这时应返回到第一步,编辑源程序状态,找出有错误的程序行,修改有错误的语句。上述程序中第10行并没有错误,只因第12行HOTA1标号后面遗漏了“:”号,导致第10行的错误,将第12行语句的标号HTOA1后加一个“:”号即可。

然后保存EXAM1.ASM文件,重新进行汇编,直至没有错误信息提示为止,方可进行下一步操作。

再次进行汇编,屏幕显示如下信息:

Microsoft Macro Assembler Version 5.00

Copyright Microsoft Corp 1981-1985,1987. All rights reserved.

EXAM1.ASM(10): error A2009: Symbol not defined: HTOA1

EXAM1.ASM(12): error A2105: Expected: instruction or directive

50542 + 449842 Bytes symbol space free

0 Warning Errors

0 Severe Errors

C:>\

没有产生错误信息,表明汇编通过,可以进行下一步操作。

【步骤三】 用LINK对目标文件进行连接,生成文件名为EXAM1.EXE的可执行文件。

操作如下:

C:>\LINK EXAM1;↙

屏幕显示如下信息:

Microsoft (R) Segmented-Executable Linker Version 5.13

Copyright (C) Microsoft Corp 1984-1991. All rights reserved.

LINK: fatal error L1093: EXAM1.OBJ: object not found

C:>\

一般情况下,连接过程不会出现错误,但是,如果程序中没有设置堆栈段,或设置了堆栈段,但未定组合类型语句STACK,连接程序LINK也会提示警告信息,但不影响程序的执行,可以忽略。

本程序出现的错误是没有找到EXAM1.OBJ文件,就是说在汇编过程中有错误产生,导致汇编程序没有通过,没有生成EXAM1.OBJ文件。在这种情况下必须回到编辑状态改正程序中的错误语句,然后重新进行汇编,直到没有错误信息提示,并且生成了EXAM1.OBJ文件,方可再次进行连接操作。

再次进行连接,屏幕显示如下信息:

Microsoft (R) Segmented-Executable Linker Version 5.13

Copyright (C) Microsoft Corp 1984-1991. All rights reserved.

C:>\

相关文档
最新文档