trump 发表于 2014-6-29 02:37:50

实验8 分析一个奇怪的程序

分析下面的程序,在运行前思考:这个程序可以正确返回吗?
assume cs:codesg

codesg segment

        mov ax,4c00h
        int 21h
       
start:
        mov ax,0       
s:
        nop
        nop
       
        mov di,offset s
        mov si,offset s2
        mov ax,cs:
        mov cs:,ax       
s0:
        jmp short s
s1:
        mov ax,0
        int 21h
        mov ax,0
s2:
        jmp short s1
        nop       

codesg ends

end startDebug中可以发现:s-0008 s0-0016 s1-0018 s2-0020。
程序执行到mov cs:,ax,将s2处指令EBF6(jmp short 0018)写在s处,指令变为jmp 0000。
从而程序执行到mov ax,4c00h int 21h,结束。

NGtailang 发表于 2014-6-29 10:55:34

楼主想问啥?
页: [1]
查看完整版本: 实验8 分析一个奇怪的程序