第一次汇编实验

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,cx

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  ah,bl

00  c7                                         add  ah,bl

b4  00                                         mov  ah,0

00  d8                                         add  al,bl

04  9c                                         add  al,9ch

代码过于繁琐,故贴出其中部分两张。在Debug中,输入的汇编指令和计算机能够识别的机器码做到一一对应。

从第一个r指令可以知道,cs初始值为14df,ip初始值为0100,然后用t指令逐步调试使得ip值不断变化,最后变成0109,之前输入的3条汇编指令正好占用9个字节,因此我们可以发现ip的变化量根据汇编指令的不同而改变。

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

mov ax,1

add ax,ax

jmp 2000:3

这条操作即一直使用jmp指令,不断进行ax寄存器中值的自加,最后即可求得2的8次方的值,最终结果详见第三张图。

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

使用d指令来查看fff0之后的内存单元,01/01/92即为生产日期,然后使用e指令修改内存单元中的值即可.

4.向内存从d8100h开始的单元中填写数据,如:

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

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

向内存从d8100h开始时,改写不同的数字就会出现不同的图形,当地址再次发生改变之后,图形就不再变化了;

5.实验小结

对汇编语言这门学科有了初步理解,算是半个门外汉了。

认识了add、mov、jmp等一些基本操作;

认识了r命令,d命令,a命令等基本指令。。。

猜你喜欢

转载自www.cnblogs.com/zyf979119567/p/9860493.html