汇编语言 实验九

时间:2022-10-10 04:51:09

一: 补全程序t1.asm,完成在屏幕上输出内存单元中的十进制两位数 

1 因为我们知道第一段的db中只含有一个数字12,所以其只占即ds:[0]的位置,而我们需要的是将商保存后面字节的位置

2我们需要add dl 48是因为数字与数字符号之间的ASCII码差值为48

汇编语言 实验九

之后我们再查看其中的结果:

汇编语言 实验九

我们可以发现正如我么所想要的结果。

二:补全程序t2.asm,完成在屏幕上输出data段定义的5个十进制两位数,数据和数据之间以空格间隔

1 我们需要将db中的5个数字完成除法运算,所以可以运用到loop指令来进行使用。

2 前面的一些准备工作和问题一是一样的,不同的就是多了一个改变地址的寄存器了,这个选择哪个寄存器没有太大影响,你可以使用si,di,bp,bx,idata之类的,只要不是定值就行,在每次循环时地址加上1,就可以逐次的完成除法。

3 在每次输出的时候,要加上空格,所以我们可以在循环里加上一个输出空格的代码段。

汇编语言 实验九

之后我们再来看看得到的结果:

汇编语言 实验九

三: 教材实验9(P187) 

在屏幕的中间分别显示绿色,绿底红色,白底蓝色的字符串‘welcome to masm!’

1 首先我么需要用loop指令来实现循环,有三次,在老师给的提示里我们可以找到中间三行的位置段地址,至于列数我们可以自行进行相应的调整,我们用di来表示。

2 之后我们就可以把数据里的单词依次的放入地址内存中,每个单词中间隔着的一个内存里面放的数字则代表这串字符的属性。

汇编语言 实验九

我们来查看我们想要的结果:

汇编语言 实验九

实验的收获:

在这次的实验中,自己学会了div用法以及更多的di,si,bp的用法,也了解了loop指令更多的用法,自己感到收获了非常多的东西,希望在以后的学习中,自己可以了解的更加的多。