汇编实验四

it2022-05-07  13

实验结论

实验任务一

(1) 新建t3.asm编写代码

 

(2) t3编译,连接并运行

 

屏幕中出现了一连串红色的心型字符,这是因为我们在往属于显存的内存中写入了0403h的数据

(3) 将填入的数据从0403h改为0441h后再次编译运行

     

      输出的字符变成了红色的大写A字母

实验任务二1新建t4.asm编写代码    

(2)编译,连接,使用debug单步调试后查看0:200~0:23f内存中的内容

 

0:200~0:23f内存中的内容确实为0~63

实验任务三

(1)新建t5.asm,补全书上代码写入

 

说明:

第一个为mov ax,cx  因为复制代码,所以开始的段地址为cs中的代码段地址

第二个为MOV CX,23  CX中应该为循环次数,循环次数由总命令的长度决定,可以通过debug先查看这段代码的长度后进行修改,也可以直接计算得,规则在最后的总结体会。

(2)使用dubug查看0:200~0:215的内存

 

代码复制成功

我在自己更改cx中值后发现,即使循环次数更大,程序也不会继续复制下去了,mov ax,4c00int 21h代表程序运行结束,不复制

实验总结与体会

代码指令的长度规则:

一、没有操作数的指令,指令长度为1个字节

二、操作数只涉及寄存器的的指令,指令长度为2个字节

    如:mov bx,ax

三、操作数涉及内存地址的指令,指令长度为3个字节

    如:mov ax,ds:[bx+si+idata]

四、操作数涉及立即数的指令,指令长度为:寄存器类型+1

    8位寄存器,寄存器类型=1,如:mov al,8;指令长度为2个字节

16位寄存器,寄存器类型=2,如:mov ax,8;指令长度为3个字节

我们可以通过[bx]来完成对连续地址的改变

 

 

转载于:https://www.cnblogs.com/makise-kurisu/p/9948196.html

相关资源:汇编实验四则混合运算,带括号

最新回复(0)