实验一汇编程序的汇编及运行
1.实验目的和要求
1、熟悉汇编程序的汇编、连接、执行过程
2、生成LST文件,查看LST文件
3、生成OBJ文件,修改语法错误
4、生成EXE文件
5、执行
2.实验环境
IBM—PC机及其兼容机
实验的软件环境是:
操作系统:DOS 2.0以上;调试程序:DEBUG.COM;文本编程程序:EDIT.EXE、WPS.EXE;宏汇
编程序:MASM.EXE(或ASM .EXE);连接装配程序:LINK .EXE;交叉引用程序:CREF.EXE(可有可无)。
3.实验内容及实验数据记录
1、将数据段输入,取名1.txt,保存在MASM文件夹下。生成LST文件,(不必连接、运行)用EDIT查看1.LST文件。试回答:DA1,DA2的偏移量分别是多少?COUNT的值为多少?
DATA  SEGMENT
ORG 20H
NUM1=8
NUM2=NUM1+10H
DA1  DB ‘IBM PC’
DA2  DB 0AH, 0DH
COUNT EQU $-DA1
DATA ENDS
END
2、输入有错误的文件,修改错误语句。(MASM没有出现错误即可。不必连
接、运行。)
DATA  SEGMENT
VAR1 DB 0, 25, ODH, 300
VAR2  DB 12H, A4H, 6BH
VAR3  DB ’ABCDEF’
VAR4  DW 1234H, 5678H
VAR5  DW 10H DUP(?)
DATA  ENDS
CODE  SEGMENT
ASSUME CS: CODE, DE: DATA BEING MOV  AX, DATA
MOV  DS, AX
LEA    SI, VAR5
MOV  BX, OFFSET VAR2
MOV  [SI], 0ABH
MOV  AX, VAR1+2
MOV  [BX], [SI]
MOV  VAR5+4, VAR4
MOV  AH, 4CH
INT  21H
CODE ENDS
END START
3、输入正确的程序,汇编、连接、运行
STACKS SEGMENT  STACK
DW      128 DUP(?)
STACKS ENDS
DATAS SEGMENT
STRING DB ‘WELCOME!’, 13, 10, ‘$’
DATAS ENDS
CODES  SEGMENT
ASSUME CS: CODES, DS: DATAS
START:MOV AX, DATAS
MOV DS, AX
LEA  DX, STRING
MOV AH, 9
INT  21H
MOV  AH, 4CH
INT  21H
CODES ENDS
END START
4.算法描述及实验步骤
(1)编写源程序。
(2)对源程序进行汇编、连接。
(3)执行程序。
2的正确代码:
DATA SEGMENT
VAR1 DW 0,25,0DH,300
VAR2 DB 12H,0A4H,6BH
VAR3 DB 'ABCDEF'
VAR4 DW 1234H,5678H
VAR5 DW 10H DUP(?)
汇编语言如何编程DATA ENDS
CODE SEGMENT
ASSUME  CS:CODE,DS:DATA BEGIN: MOV  AX,DATA
MOV  DS,AX
LEA  SI,VAR5
MOV  BX,OFFSET VAR2
MOV  WORD PTR[SI],0ABH
MOV  AX,VAR1+2
MOV  BX,[SI]
MOV  CX,VAR4
MOV  VAR5+4,CX
MOV  AH,4CH
INT  21H
CODE ENDS
END  BEGIN
5.调试过程
(1)300超过一个字节,将DB改为DW。
(2)A4H改为0A4H。
(3)DE改为DS。
(4)BEGIN后要加冒号。
(5) MOV [SI],0ABH改为MOV WORD PTR[SI],0ABH。
(6) MOV [BX],[SI]改为 MOV BX,[SI]。
(7) MOV VAR5+4,VAR4 改为MOV CX,VAR4
MOV VAR5+4,CX
(8)END START改为END BEGIN
6. 实验结果
(1)
DA1、DA2的偏移量分别是0020H,0026H。COUNT的值为0008H。
(2)
(3)
7. 总结
此次上机实验掌握了实际调试程序的能力,熟悉了汇编程序的汇编、连接、执行过程,在生成的文件中修改语法错误。此次实验不仅验证了课本的理论,更重要的是使我有了对实践能力的培养。

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。