标签:inf 理解 程序 调试 bsp 有一个 寄存器 写入 地址
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命令等基本指令。。。
标签:inf 理解 程序 调试 bsp 有一个 寄存器 写入 地址
原文地址:https://www.cnblogs.com/zyf979119567/p/9860493.html