602968956 发表于 2014-5-11 09:19:39

求高手帮忙分析一下这个子程序~有几个步骤不明白~

这个好像是个16进制转10进制并且输出的~~

dis    proc            ;转换子程序(SI指针由外部提供,方便选择要显示的东西)
                                 ;proc是定义子程序的伪指令,它和endp 分别表示子程序定义的开始和结束两者必须成对出现。
    lodsw   (这个指令有什么用?)
    mov    bx,3      ;数据在十进制时的是三位数所以计数部分BX置三(这里为什么要用BX?不用CX?)

ZL1:    cwd   (这里为什么要用CWD)
   
      div M      ;M=10为什么要除10?
      push dx
       dec bx
       jnz ZL1       ;结果不为0则转移
      
      mov bx,3

ZL2:pop dx
    add dl,30h         ;这里有什么用?
    dec bx
    mov ah,2    ;这里有什么用?
    int 21h
    jnz ZL2
    mov DL,20H         ;这里有什么用?
    mov ah,2
    int 21h
    ret
    dis endp

页: [1]
查看完整版本: 求高手帮忙分析一下这个子程序~有几个步骤不明白~