目录
实验上篇 查看 CPU 和内存,用机器指令和汇编指令编程
【实验目的】
掌握DEBUG的基本命令及其功能掌握win7 win8使用DEBUG功能
【实验具体内容】
1.实验过程:
(1)打开DOSbox,在指令区输入debug,进入debug调试模式;如图1所示。
图 1
(2)使用r指令,查看寄存器状态;如图2所示。
图 2
(3)使用r指令,将cs改为1000,将IP改为0;如图3所示。
图 3
(4)使用e指令,输入e 1000:0 b8 20 4e(对应汇编指令mov ax,4E20H);如图4所示。
图 4
(5)使用t指令,执行指针指向位置的代码,并显示寄存器状态,发现ax数值变为了4e20H;如图5所示。
图 5
(6)使用e指令,输入e 1000:6 05 16 14(对应汇编指令为add ax,1416);使用t指令,可以看到ax增加了1416;如图6所示。
图 6
(7)使用-a指令,输入a 1000:6,回车,然后输入汇编指令mov bx,2000,再按两次回车;使用-t指令,可以看到bx从0000变为了2000,如图7所示。
图 7
(8)使用-a指令,输入a 1000:9,回车,然后输入汇编指令add ax,bx,再按两次回车;使用-t指令,可以看到ax从6236变为了8236,如图8所示。
图 8
(9)使用-a指令,输入a 1000:B,回车,然后输入汇编指令MOV ax,bx,再按两次回车;使用-t指令,可以看到bx从2000变为了8236,如图9所示。
图 9
(10)使用-a指令,输入a 1000:9,回车,然后输入汇编指令add ax,bx,再按两次回车;使用-t指令,可以看到ax从6236变为了8236,如图10所示。
图 10
(11)使用-a指令,输入汇编指令mov bx,ax,再按两次回车;使用-t指令,可以看到bx变为了046C,如图11所示。
图 11
(12)使用-a指令,输入汇编指令add ax,bx,再按两次回车;使用-t指令,可以看到ax从046C变为了08D8,如图12所示。
图 12
(13)使用-a指令,输入汇编指令mov ax,001A,再按两次回车;使用-t指令,可以看到ax变为了001A,如图13所示。
图 13
(14)使用-a指令,输入汇编指令mov bx,0026,再按两次回车;使用-t指令,可以看到bx变为了0026,如图14所示。
图 14
(15)使用-a指令,输入汇编指令add al,bl,再按两次回车;使用-t指令,可以看到al从原来1A变为了40,如图15所示。
图 15
(16)使用-a指令,输入汇编指令add ah,bl,再按两次回车;使用-t指令,可以看到ah从00变为了26,如图16所示。
图 16
(17)使用-a指令,输入汇编指令add bh,al,再按两次回车;使用-t指令,可以看到bh从00变为了40,如图17所示。
图 17
(18)使用-a指令,输入汇编指令mov ah,0,再按两次回车;使用-t指令,可以看到ah变为0,如图18所示。
图 18
(19)使用-a指令,输入汇编指令add al,bl,再按两次回车;使用-t指令,可以看到al从40变为了66,如图19所示。
图 19
(20)使用-a指令,输入汇编指令add al,9CH,再按两次回车;使用-t指令,可以看到al从66加9c变为了02(进位不显示),如图20所示。
图 20
(21)使用-a指令,依次输入以下汇编指令:
mov ax,1;将ax变为1
add ax,ax;使ax变为2
jmp 2000:0003;进行循环
发现ax变为了2的0次方1;如图21所示。
图 21
(22)连续执行5次-t指令,发现ax变为了2的3次方8;如图22所示。
图 22
(23)使用-d指令,查看ffff:0005处的内存情况,可以看出是一个日期;如图23所示。
图 23
(24)尝试更改ffff:0005处的内容,发现无法更改。原因是8086CPU的内存地址空间分配如图24,生产日期无法修改是因为生产日期是写在主板上的ROM中的,而ROM是只读存储器,只能读取不能写入。
图 24
实验下篇 用机器指令和汇编指令编程
【实验具体内容】
1.使用-a指令,输入以下代码,并逐条执行,如图25.
图 25
mov ax,ffff;将ax变为ffff,如图26