实验任务

(1)使用Debug,将下面的程序段写入内存,逐条执行,观察每条指令执行后CPU中相关寄存器中内容的变化。

  机器码          汇编指令

  b8 20 4e         mov ax,4E20H

  05 16 14          add ax,1416H

  bb 00 20         mov bx,2000H

  01 d8           add ax,bx

  89 c3           mov bx,ax

  01 d8           add ax,bx

  b8 1a 00         mov ax,001AH

  bb 26 00          mov bx,0026H

  00 d8           add al,bl

  00 dc           add bh,bl

  00 c7           add bh,al

  b4 00           mov ah,0

  00 d8           add al,bl

  04 9c           add al,9CH

(2)将下面3条指令写入从2000:0开始的内存单元中,利用这3条指令计算2的8次方。

  mov ax,1

  add ax,ax

  jmp 2000,0003

AX=0100即为2的8次方(256的16进制即为100H)。

(3)查看内存中的内容。

PC机主板上的ROM中写有一个生产日期,在内存FFF00H~FFFFFH的某几个单元中,请找到这个生产日期并试图改变它。

尝试修改失败,因为ROM是只读存储器。

(4)向内存从B8100H开始的单元中填写数据,如:

-e B810:0000 01 01 02 02 03 03 04 04

请读者先填写不同的数据,观察产生的现象;再改变填写的地址,观察产生的现象。

 

填写数据后,屏幕右上角出现彩色图案。

 

 

填写不同的数据后,图案发生了改变。

 

改变地址后,在屏幕其他位置会出现相同图案。

总结与体会

通过本次实验,我更直观的认识到了汇编语言与其他高级语言的不同,了解了r,d,a,t,e等命令的具体用法。

不过我还有一些尚未解决,在实验(2)中我本来打算是用g=0000 0013直接运算结果的,但程序却直接卡住,希望知道我哪里出错的大佬不吝赐教