美文网首页工作生活
《汇编语言》实验8

《汇编语言》实验8

作者: infinite_stack | 来源:发表于2019-06-29 16:42 被阅读0次

    P187
    分析下面的程序,在运行前思考:这个程序可以正确返回吗?
    运行后再思考:为什么是这个结果?

    assume cs:code
    code segment
    
           mov ax,4c00h
           int 21h
    
    start: mov ax,0
        s: nop
           nop
    
           mov di,offset s
           mov si,offset s2
           mov ax,cs:[si]
           mov cs:[di],ax
    
       s1: jmp short s
           int 21h
           mov ax,0
    
       s2: jmp short s1
           nop
    
    code ends
    end start
    

    分析:

    mov di,offset s
    mov si,offset s2
    mov ax,cs:[si]
    mov cs:[di],ax
    

    这段代码执行后,s处的两字节改写为s2处的指令jmp short s1
    观察s2与s1s与code的位置,可以发现,两者之间的字节数相等,即:s处的指令相当于jmp short code
    当代码执行到s1处,跳转s,接着跳转code,故程序最终能正确返回。

    相关文章

      网友评论

        本文标题:《汇编语言》实验8

        本文链接:https://www.haomeiwen.com/subject/eoypcctx.html