分享一下自己的汇编实验作业
【实验具体内容】
(1)实验源代码:
STACKS SEGMENT STACK ;堆栈段
DW 128 DUP(?) ;注意这里只有128个字节
STACKS ENDS
DATAS SEGMENT
STRING DB 13,10,‘Hello World!’,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
(2)实验过程截图及分析:
【第一个实验】
DOS 下的编译过程:
将c:\users\master\masm5挂载于虚拟的c中
查看虚拟c下的文件
尝试运行masm,成功,说明环境配置成功
在C:\Program Files (x86)\DOSBox-0.74批处理器文件中添加代码,用于缩减配置环境变量的操作
把asm程序编译成二进制代码,没有错误
查看生成的obj文件
把obj文件变成可执行目标代码,即可执行文件exe
编译exe完成
对hw文件进行运行,成功了!!!
调试工具,用于发现逻辑错误
【第二个实验】
Win10下的编译过程
粘贴程序
运行成功
对程序进行debug查找运行错误
(3)实验心得:
这一次的实验是对汇编语言的入门,主要是理解masm5环境,进行简单的程序调试,在实验中我发现,原本在以前的C语言当中简便的代码,运用到汇编语言当中,就变得复杂了起来,这也让我明白了汇编语言的确更贴近硬件,只比机器语言高一个级别,这也让我更加佩服编写机器指令的前辈们,分别在dos和windows环境下的实验,也让我明白了环境对于编译代码的重要性,无怪乎有些软件会因为运行环境的问题而无法工作,原来是基层代码不能运行的缘故。
总的来说,汇编语言的流程为,文本编辑\masm编译程序\link编译为exe文件\debug查错。
(4)学习笔记:
1.汇编语言中不区分大小写
2.注意空格,不然读取不了
3.t用于执行一条汇编指令,每次执行一步