ICode9

精准搜索请尝试: 精确搜索
首页 > 编程语言> 文章详细

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

2021-12-11 14:02:02  阅读:136  来源: 互联网

标签:命令 0433h 汇编语言 编程 mov 改写 编译 ax


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

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有