4_1_1.asm
上传用户:xinbaokeji
上传日期:2022-07-05
资源大小:295k
文件大小:1k
源码类别:

汇编语言

开发平台:

Visual C++

  1. DATA    SEGMENT
  2. X       DW      2
  3. Y       DW      2
  4. Z       DW      3
  5. V       DW      10
  6. W       DW      2 DUP(?)
  7. DATA    ENDS
  8. STACK   SEGMENT  STACK PARA STACK 'STACK'
  9. DB   200  DUP(0)
  10.         BUFFER DB 10 DUP(?)
  11. STACK   ENDS
  12. CODE    SEGMENT
  13. ASSUME  DS:DATA,CS:CODE,SS:STACK
  14. START:  MOV     AX,SEG DATA
  15. MOV     DS,AX   ;DATA→AX
  16. LEA     SI,BUFFER
  17. MOV     AX,X
  18. IMUL    Y       ;(x)*(y)→DX:AX
  19. MOV     CX,AX
  20. MOV     BX,DX   ;(DX:AX)→(BX:CX)
  21. MOV     AX,Z
  22. CWD     ;(Z) 符号扩展
  23. ADD     CX,AX
  24. ADC     BX,DX   ;(BX:CX)+(DX:AX)→(BX:CX)
  25. SUB     CX,2
  26. SBB     BX,0    ;(BX:CX)-2→(BX:CX)
  27. MOV     AX,V
  28. CWD     ;(V)符号扩展
  29. SUB     AX,CX
  30. SBB     DX,BX   ;(DX:AX)-(BX:CX)→(DX:X)
  31. IDIV    X       ;(DX:AX)/X
  32. MOV    DL,AL
  33.         PUSH   CX
  34.         MOV    CL,4
  35.         SHR    AL,CL
  36.         OR     AL,30H
  37.         MOV    [SI] ,AL
  38.         INC    SI
  39.         MOV    AL,DL
  40.         AND    AL,0FH
  41.         OR     AL,30H
  42.         MOV    [SI],AL
  43.         INC    SI
  44.         MOV    AL,'$'
  45.         MOV    [SI],AL
  46.         MOV    DX,OFFSET BUFFER
  47.         MOV    AH,09H
  48.         INT    21H
  49. MOV     AH,4CH
  50. INT     21H
  51. CODE    ENDS    ;退出DOS 状态
  52. END     START