编程语言
首页 > 编程语言> > 【汇编语言实验三】编程、编译、连接、跟踪

【汇编语言实验三】编程、编译、连接、跟踪

作者:互联网

1. 任务一:

(1)

①用edit命令开始编辑。

②出现如图界面,按下回车。

③出现此界面,按下alt键,菜单栏的每个单词首字母会变成白色,在键盘上按F键,展开File栏。

④出现如图界面,按下N键,新建一个文件。

⑤用光标把图中圈出来的地方往上拉,可以显示完全。

⑥如图输入代码。

⑦按alt,选择file,选择save。

⑧文件命名时,后缀可以是.txt,但建议用.asm,方便之后的编译和链接。

⑨保存后用alt呼出file的exit退出edit,用masm进行编译。

⑩用dir查看虚拟盘时,可以看到,出现了t1.obj,这是编译后的中间文件。

⑪用link进行连接,按几个回车键,然后执行t1。

观察到输出的结果是36

(2)

①分别修改成0和0,输出了00。

②分别修改成1和4,输出结果是14。

(3)用debug单步运行程序

①使用r命令查看各个内存器的值;

  cx=0016,代表程序的大小;cs=ds+10

②使用d命令,d ds:0 1查看psp前两个字节的内容;

③使用u命令进行反汇编;

④用t命令和p命令单步执行程序,下一条汇编指令是int类型时,必须用p进入子程序,可以看到执行的值,若使用t命令则看不到。


2. 任务二:

(1)

①操作和任务一相同,输入如下代码。

②编译、连接

③cls后运行,观察到左上角有个红色的36.

(2)将代码第七行的 0433h 改写成 0432h ,第十行的 0436h 改写成 0439h,重复上述操作,观察到屏幕左上方出现红色的29。

(3)将代码第七行的 0433h 改写成 0333h ,第十行的 0436h 改写成 0336h,重复上述操作,观察到屏幕左上方出现蓝色的36。


思考:

(1)t2.asm中,mov ax,0b800h这一代码,不知道是0b80被送入ax中,还是b800被送进ax中。

经过单步调试后,发现是b800被送入ax中,感觉送入5个字节会产生问题,不知道算不算得上是错误,

当把0b800h改成b800h时,反而出了错误!不太明白。

(2)mov [bx],0433h显示的是红色的3,mov [bx],0333h显示的是蓝色的3,mov [bx],0432显示的是红色的2,虽然不知道具体什么原理,但可以猜测,0433h中,第二个数字4是控制颜色,最后一个数字3是控制输出数字。

标签:命令,0433h,汇编语言,编程,mov,改写,编译,ax
来源: https://blog.csdn.net/qq_40592576/article/details/121851511