实验1 用汇编指令编码和调试
- 实验任务二:
- 实验结论——无法修改
- 原因分析——ffff:0-f属于ROM只读存储区,仅能进行写入操作,无法修改其中内容。
- 实验任务三:
修改内存地址:
当我输入以下命令时:
遭到了爱心暴击:
失去爱心:
原因:因为从A0000开始的一段地址范围被用来寻址图形模式的显存,映射到了BIOS的ROM中,而从B8000开始的地址到BFFFF这段地址并不是映射到ROM中,而是显存内,所以当修改B0000-B0FFF时不会在屏幕上出现爱心
- 实验任务四:
填空题
问题一:
00220H ~ 0022fH用作栈空间。指令 mov ss, ax 和 mov sp, 30 执行后,
栈顶的逻辑地址和物理地址分别是
答:逻辑地址为20:0030;物理地址为2030.
问题二:
调试到汇编指令 push [6] 执行结束, pop [6] 执行之前,使用 d 20:20 2f 查看此时栈空间数据
问题三:
调试到汇编指令 pop [0] 执行结束后, pop [0] 指令执行结束后,使用d命令 d 20:0 7 查看此时数据空间内的数据有变化
问题四:
最后四条指令改变顺序, pop [6] 指令执行结束后,使用d命令 d 20:0 7查看此时数据空间内的数据有变化
- 实验任务五:
问题1:
使用t命令单步执行 mov ss, ax 时,是单步执行完这一条指令就暂停了吗?后面的指令 mov sp, 30 是什么时候执行的?
答:有实验结果可以看到执行完mov ss,ax时,不光是ss=0020,同时sp也设为了0030,而能设置sp的只有指令mov sp,10,所以在使用t命令单步执行mov ss,ax的时候mov sp,10一定也执行了。通常t命令单步执行一个指令后会停止继续执行,但当执行到mov ss,ax时并没有停止执行,而是执行了mov sp,10才停止,可以猜测,当使用t命令执行修改寄存器SS的指令时,下一条指令会被直接执行。
问题2:
根据汇编指令,前三条指令执行后,00220H ~ 0022fH被设置为栈空间。并且,初始时,已通过f命令将初始栈空间全部填充为0。观察单步调试时,栈空间00220H ~ 0022fH内存单元值的变化,特别是图示中黄色下划线表示出的数据值。根据实验观察,尝试思考和分析原因。
答:可以看到栈内多出了的内容刚好是当前执行指令的地址,由此可见,因为在使用 t 指令时单步执行指令从而引发了中断,而在中断过程中时会使用当前栈空间存放cpu关键数据,便于下次继续执行。
- 实验任务六:
程序源码:
1 assume cs:code 2 3 code segment 4 start: 5 mov cx, 10 6 mov dl, '0' 7 s: mov ah, 2 8 int 21h 9 add dl, 1 10 loop s 11 12 mov ah, 4ch 13 int 21h 14 code ends 15 end start
汇编以及链接过程:
运行结果:
查看程序段前缀PSP:
- 实验任务七:
补全空处后的源码:
1 assume cs:code 2 code segment 3 start: 4 mov ax, cs 5 mov ds, ax 6 mov ax, 0020h 7 mov es, ax 8 mov bx, 0 9 mov cx, 17 10 s: mov al, [bx] 11 mov es:[bx], al 12 inc bx 13 loop s 14 15 mov ax, 4c00h 16 int 21h 17 code ends 18 end
原因:
1、将程序段的段地址传递给中间过渡寄存器ax,从而传给代码段寄存器ds。
2、cx中保存的是程序的长度,但有效程序不包括mov ax 4c00h 和int 21h 所以将17h传递给cx。
反汇编截图:
- 实验总结:
1、实模式、保护模式、长模式等CPU工作模式的区别
答:实模式指的是相当于cpu在裸机情况下的一种快速8086 ,但不能发挥80x86的功能;保护模式是指cpu在非裸机情况下 通过操作系统接管过去之后就会具备80x86的威力了;长模式相比于保护模式,增加了一些通用寄存器,并扩展通用寄存器的位宽,所有的通用寄存器都是 64 位,还可以单独使用低 32 位。32 位可以拆分成一个低 16 位寄存器,低 16 位又可以拆分成两个 8 位寄存器。长模式依然具备保护模式绝大多数特性,如特权级和权限检查。
2、通过这次实验让我知道了,在计算机内存中并不是所有的地址都可以被我们改变,有些系统专用的内存是不能操作的,否则可能会影响很多部件的工作情况;以及T指令的单步执行操作是会自动执行对栈寄存器SS操作的语句的下一条语句,同时T指令的单步执行是会引起中断的以保证每次执行一条便停止。