+ -
当前位置:首页 → 问答吧 → 汇编小题解释

汇编小题解释

时间:2011-05-29

来源:互联网

DATA SEGMENT
  MSG DB '12345+56789=?????$'
  A DD 12345
  B DD 56789
DATA ENDS

CODE SEGMENT
  ASSUME CS:CODE,DS:DATA
START:
  MOV AX,DATA
  MOV DS,AX
  MOV AX,WORD PTR A
  MOV DX,WORD PTR [A+2]
  MOV CX,WORD PTR B
  MOV BX,WORD PTR [B+2]
  ADD AX,CX
  ADC DX,BX
  MOV SI,OFFSET MSG
  ADD SI,12
  CALL DECTOHEX
   

  MOV DX,OFFSET MSG
  MOV AH,9
  INT 21H
   

  MOV AH,4CH
  INT 21H
   

DECTOHEX PROC NEAR
  XOR CX,CX
  MOV BX,10
  DIV BX
  INC CX
  PUSH DX
DIVP:
  XOR DX,DX
  DIV BX
  PUSH DX
  INC CX
  OR AX,AX
  JNZ DIVP
   

DISP:
  POP AX 这句前面并没有push指令,那么POP AX,出来的是什么值  
  ADD AX,30H
  MOV [SI],AL
  XOR AH,AH
  INC SI
  DEC CX
  JNZ DISP
  RET
DECTOHEX ENDP

CODE ENDS
  END START

程序可以执行,帮忙解释一下,最好再讲解下子程序里的DX 和AX的出栈入栈值的变化

作者: twins7963   发布时间: 2011-05-29

请注意片段
...
DIV BX
PUSH DX
INC CX
...
函数DECTOHEX的前半部分是把结果压栈,后半部分是将结果出栈显示。

作者: XSFGaoVictor   发布时间: 2011-05-29

谁说push和pop一定要对称出现,你要明白pop和push的本质所在。

作者: mydo   发布时间: 2011-05-29

热门下载

更多