315775569 发表于 2012-7-3 11:42:02

很纠结关于实验八的一个问题,急急..........!

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 start

在看源程序的时候如何判断JMP SHORT S1 是向上跳的,还是要debug执行才能知道这条指令时向上跳的
我很纠结要是要写一个关于这样的程序,该怎么写,在源程序里该怎么判断jmp 是向上跳还是向下跳。

变得不一样 发表于 2012-7-3 15:32:04

jmp short s1是把IP指向s1标号处S1标号处再 jmp short s1指令上面所以忘上跳编译后JMP short S1=jmp ip-8执行这条指令的时候就是把IP-8所以你把它搬到S标号处也是相当于当前IP-8 所以就指向mov ax,4c00h这条指令

315775569 发表于 2012-7-3 22:22:50

变得不一样 发表于 2012-7-3 15:32 static/image/common/back.gif
jmp short s1是把IP指向s1标号处S1标号处再 jmp short s1指令上面所以忘上跳编译后JMP short S1=j ...

{:5_95:}谢谢 大哥!

变得不一样 发表于 2012-7-3 23:20:22

315775569 发表于 2012-7-3 22:22 static/image/common/back.gif
谢谢 大哥!

不用谢 我也是菜鸟一只刚学完汇编来回答问题 顺便巩固下学到的知识
页: [1]
查看完整版本: 很纠结关于实验八的一个问题,急急..........!