准备:
硬件:pc机,32位win操作系统,能够运行dos,某些64位win10系统可能会不支持
软件:masm程序
实验内容:
1.win+r运行dos,cd到指定的masm目录(为了调试方便,所有的文件和程序都放在该目录下)
2.edit filename.asm回车后进行编辑,输入相应的汇编程序。(也可以用nodepad++,vim等二进制文本编辑器)
该汇编语句的源码(实现两个数的相加):
DATA SEGMENT ;DATA段定义开始BUF1 DB 34H BUF2 DB 27HSUM DB ?
DATA ENDS ;DATA段定义结束
CODE SEGMENT ;CODE段定义开始ASSUME CS:CODEASSUME DS:DATA ;段性质规定
START: MOV AX,DATA MOV DS,AX ;给DS赋值MOV AL, BUF1 ;取第一个加数ADD AL, BUF2 ;两数加MOV SUM, AL ;和放入SUM单元MOV AH,4CH INT 21H ;返回DOS
CODE ENDS ;CODE段定义结束END START ;源程序结束
3.运行masm filename.asm对该文件进行汇编(如果出现error或者warning请检查源程序),汇编结束会产生相应的obj文件。
4.link filename.obj连接程序,使得二进制目标文件变成可执行文件,操作后生成exe文件。
4.输入my直接运行汇编好的程序(sum已经mov到相应的内存单元)。
附加:
debug调试:
1.debug filename.exe进入该程序的调试模式。
2.不停的t命令单步调试,直到完成mov sum。
3.d模式查看内存单元的内容。
可以看到,0000到0002三个单元的数分别为34 27 5B(前两个为加数,后一个为和)
至此,整个汇编上机过程完成,而需要掌握的是中间的编辑,汇编,运行步骤。
对于debug模式,要学会使用常用的t(单步调试),d(查看内存单元内容),u(反汇编)等命令。