-
-
[旧帖]
[讨论]关于Mekka '97 4K Intro
0.00雪花
-
-
[旧帖] [讨论]关于Mekka '97 4K Intro
0.00雪花
就是那个很有名的4K com程序, 我今天分析了开头的几条指令,很费解.
0100 - 0108的5条指令:
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
xor si, si
mov di, 2000
mov ch, 10
repz
movsw
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
CX初始为0FFF, mov ch, 10后为10FF.
这个程序段将cs:0开始的10FF * 2字节数据
拷贝到ES:2000.
然后是0109 - 0112的5条指令:
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
mov ax, cs
add ax, 0200
push ax
push 0113
retf
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
CS加上200,
很明显的, CS指向了上面指定的ES:2000处,
而IP指向0113, 跳过了这10条指令.
我不明白程序一开始为什么要将代码拷贝到ES:2000处, 而不是直接执行???????
算上PSP, 代码长FFF - 1字节,
为什么要拷贝10FF * 2字节数据????
而且为什么要从ES:2000处拷贝, 而不是FFF处拷贝?????
[培训]内核驱动高级班,冲击BAT一流互联网大厂工作,每周日13:00-18:00直播授课