回 帖 发 新 帖 刷新版面

主题:rout1,rout2,rout3是谁调用它们的

//请问各位高手,rout1,rout2,rout3都是待调用目标地址,这个程序没有jmp rout3之类指令,它们是怎么工作起来的
DATAS SEGMENT
    STRING         DB 'Hello World$' 
    FIVE           DB 5
    DATA_LIST      DW 1,0,2,5,4
    MAX            DW ?
    MIN            DW ?
DATAS ENDS

STACKS SEGMENT
    ;此处输入堆栈段代码
STACKS ENDS
print macro string
lea dx,string
mov ah,09h
int 21h
endm
CODES SEGMENT
    ASSUME CS:CODES,DS:DATAS,SS:STACKS
START:
    MOV AX,DATAS
    MOV DS,AX
    MOV CX,4
    LEA BX,DATA_LIST
    MOV AX,[BX]
    MOV MAX,AX
    MOV MIN,AX
    ROUT1:
    ADD BX,2
    MOV AX,[BX]
    CMP AX,MAX
    JNGE ROUT2
    MOV MAX,AX
    ROUT2:
         CMP AX,MIN 
         JNLE ROUT3 
         MOV MIN,AX 
    ROUT3:LOOP ROUT1   
    MOV DX,MAX
    ADD DL,30H
    MOV AH,2
    INT 21H
    MOV DX,MIN
    ADD DL,30H
    MOV AH,2
    INT 21H
    LEA DX,STRING
    MOV AH,9
    INT 21H
    MOV AH,4CH
    INT 21H  
CODES ENDS
    END START

回复列表 (共2个回复)

沙发


JNGE ROUT2
JNLE ROUT3 
这两句也是跳转指令啊
CMP AX,MAX执行这一句后,根据比较的结果来判断是否跳转到ROUT2,如果AX里的内容不大于等于MAX,则跳转到ROUT2,否则执行下一句MOV MAX,AX,其他几个类似

板凳


谢谢!
但是rout1调用rout2,而rout2调用rout3,而rout3调用rout1,觉得有点乱

我来回复

您尚未登录,请登录后再回复。点此登录或注册