练习1是用MASM做的,一开始edit没办法打开,但是MASM练习2做不了,需要注册
结果为36(这个没法截图,按任意键就退出了)
改后的:
结果变为27
(3)
- Cx =0016 , ds = 0760 , cs = 0070 = ds + 10H
2.用d命令查看 的确如此
反汇编
P指令后AX寄存器的值变了,但我不懂为什么会变,p下面的数字是第几行开始那个程序段(我猜的)
疑问: 我把2后面加H结果不变,但是把30H的H去掉结果就变成了一个类似于X的符号,里面应该都是16进制,反汇编了一下也是一样的,分部调试也一样,就结果不一样,感觉挺奇妙的。
练习2用的edit
简化方式编译
连接
执行
(那个笑脸是搜狗截屏的快捷键弄出来了orz一截图就会有)
结果值变了,颜色没变
颜色变了
可能是因为,内存空间分配地址不同,几次都是往主随机存储器写入数据。第一次和第三次,两个数据相差3,但是,第一次是数据0430到043f之间,第三次数据在0330到033f之间,所以结果数值是一样的,颜色一红一蓝,而第一次和第二次两个数据相差一个是3,一个是7,但是都是0430到043f之间所以结果数值不同,颜色都是红色。(一本正经瞎猜的,看不懂t2.asm实现的功能,难道是在屏幕左上角实现展现一个有颜色的数据吗)
练习一是改变的寄存器的值,练习2是改变的内存单元的值。AX BX等寄存器是电脑的硬件,可能不会影响内存单元,实验2 直接在内存单元中处理,所以会和练习1不同。(这个也是猜的)