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

汇编语言

开发平台:

Visual C++

  1. DATA SEGMENT
  2. NUM8 DB 93H
  3. NUM16 DW 0ABCDH
  4. ASCBUF DB 20 DUP(0)
  5. DATA ENDS
  6. STACK  SEGMENT PARA STACK 'STACK'
  7.                DB 100 DUP(?)
  8. STACK  ENDS
  9. CODE SEGMENT
  10. ASSUME  DS:DATA,CS:CODE, SS:STACK
  11. START: MOV AX,DATA
  12. MOV DS,AX
  13. MOV DX,0
  14. MOV DL,NUM8 ;转换二进制数送DX
  15. MOV CX,8 ;置位数8
  16. LEA DI,ASCBUF ;字符串首址→DI
  17. CALL BTASC ;调用子程序BTASC
  18. MOV [DI],BYTE  PTR  0DH
  19. MOV [DI+1],BYTE  PTR  0AH
  20. MOV [DI+2],BYTE  PTR  '$'
  21. LEA DX, ASCBUF                      
  22. MOV AH,09H  
  23. INT 21H
  24. MOV DX,NUM16
  25. MOV CX,16 ;置位数16
  26. LEA DI,ASCBUF
  27. CALL BTASC
  28.     MOV [DI],BYTE  PTR  0DH
  29. MOV [DI+1],BYTE  PTR  0AH
  30. MOV [DI+2],BYTE  PTR  '$'
  31. LEA DX, ASCBUF                      
  32. MOV AH,09H  
  33. INT 21H
  34. MOV AH,4CH
  35.     INT 21H 
  36. BTASC PROC
  37. PUSH AX ;保存AX
  38. MOV AL,0
  39. CMP CX,8 ;比较8位数
  40. JNE L1 ;直接转换16位数
  41. MOV DH,DL ;8位数转换送DH
  42. L1: ROL DX,1 ;DX最高位移入CF
  43. RCL AL,1 ;CF移入AL最低位
  44. ADD AL,30H
  45. MOV [DI],AL
  46. INC DI
  47. MOV AL,0
  48. LOOP L1
  49. POP AX
  50. RET
  51. BTASC ENDP
  52. CODE ENDS
  53. END START