悉远

 找回密码
 注册
搜索
查看: 946|回复: 0

转换二进制为字符串并显示

[复制链接]
发表于 2011-5-9 20:38:43 | 显示全部楼层 |阅读模式
  1. DATA        SEGMENT
  2. NUM8        DB        10110100B
  3. NUM16        DW        1010101111101101B
  4. ASCBUF        DB        20        DUP (0)
  5. DATA        ENDS
  6. STACK   SEGMENT    PARA   STACK  'STACK'
  7. DB  200  DUP (0)
  8. STACK        ENDS
  9. CODE        SEGMENT
  10.         ASSUME  DS:DATA, CS:CODE, SS:STACK
  11. START:        MOV        AX,DATA
  12.         MOV        DS,AX
  13.         
  14.         MOV        DX,0
  15.         MOV        DL,NUM8        ;转换二进制数送DX

  16.         MOV        CX,8        ;置位数8
  17.         LEA        DI,ASCBUF        ;字符串首址→DI
  18.         CALL        BTASC        ;调用子程序BTASC
  19.         MOV        [DI],BYTE  PTR  0DH
  20.         MOV        [DI+1],BYTE  PTR  0AH
  21.         MOV        [DI+2],BYTE  PTR '




  22.         LEA        DX,ASCBUF
  23.         MOV        AH,9
  24.         INT        21H

  25.         MOV        DX,NUM16
  26.         MOV        CX,16        ;置位数16
  27.         LEA        DI,ASCBUF
  28.         CALL        BTASC
  29.              MOV        [DI],BYTE  PTR  0DH
  30.         MOV        [DI+1],BYTE  PTR  0AH
  31.         MOV        [DI+2],BYTE  PTR '


  32. ; 显示转换字符串
  33.         LEA        DX, ASCBUF                     
  34.         MOV        AH,9  
  35.         INT        21H

  36.         MOV        AH,4CH  
  37.         INT        21H


  38. BTASC        PROC
  39.         PUSH        AX        ;保存AX
  40.         MOV        AL,0
  41.         CMP        CX,8        ;比较8位数
  42.         JNE        L1        ;直接转换16位数
  43.         MOV        DH,DL        ;8位数转换送DH
  44. L1:        
  45.         
  46.         
  47.         ROL        DX,1        ;DX最高位移入CF
  48.         MOV        AL,0
  49.         RCL        AL,1        ;CF移入AL最低位
  50.         ADD        AL,30H
  51.         MOV        [DI],AL
  52.         INC        DI
  53.         
  54.         LOOP        L1
  55.         POP        AX

  56.         RET
  57. BTASC        ENDP

  58.         

  59. CODE        ENDS
  60.         END        START
复制代码



您需要登录后才可以回帖 登录 | 注册

本版积分规则

QQ|QQ客服|联系我们|Archiver|手机版|小黑屋|悉远网络 ( 鄂ICP备09013446号 )

GMT+8, 2024-5-6 09:26 , Processed in 0.031477 second(s), 5 queries , Redis On.

Powered by Discuz! X3.5

Copyright © 2001-2023 Tencent Cloud.

快速回复 返回顶部 返回列表