回 帖 发 新 帖 刷新版面

主题:如何用汇编语言编写从键盘接收16进制数转变为2进制

如何用汇编语言编写从键盘接收16进制数转变为2进制
小弟急需
望高手指点

回复列表 (共4个回复)

沙发

怎么实现从键盘输入十进制然后转换为二进制并显示出来啊!
转换的子程序我弄出来了
可是怎么实现键盘输入和把转换后的二进制显示出来呀
帮帮我呀
谢谢了!

板凳

【例4.17】用模块化程序设计方法编制一个把十进制数N(16bit)转换成十六进制数的程序,要求待转换数N由键盘输入,转换结果在屏幕上显示出来。首先建立两个模块A:READ.ASM和模块B:SCREEN.ASM。其中模块A:完成转换功能,模块B完成显示功能。
模块A:READ.ASM
PUBLIC    crlf,m
EXTRN    disp:near

data     SEGMENT    PUBLIC 'data'
n    DB    0ah,0dh,'input=$'
m    DB    'output=$'
crlf    DB    0ah,0
data     ENDS
code     SEGMENT    PUBLIC    'code'
ASSUME     cs:code,ds:data
start     PROC far
        PUSH ds
        MOV ax,0
        PUSH ax
         MOV ax,data
          MOV ds,ax
REPEat:    MOV bx,0
        MOV ah,9
        LEA dx,n
        INT 21h
        CALL DECibin
        CALL disp
        MOV ah,1
        INT 21h
          CMP al,0dh
        JZ END1
        JMP REPEat
END1:    RET
start     ENDP
DECibin     PROC near 
newchar:    MOV ah,1
            INT 21h
            SUB al,30h
            JL exit
            CMP al,39h
            JG exit
            CBW
            XCHG ax,bx
            MOV cx,10
            MUL cx
            XCHG ax,bx
            ADD bx,ax
            JMP newchar
exit:        RET
DECibin     ENDP
code         ENDS
            END start
模块B:

PUBLIC disp
EXTRN     crlf:byte,m:byte


code     SEGMENT PUBLIC 'code'
ASSUME cs:code
disp   PROC near
        MOV ah,09h
        LEA dx,m
        INT 21h
       MOV ch,4
rotate:    MOV cl,4
        ROL bx,cl
        MOV al,bl
        AND al,0fh
        ADD al,30h
        CMP al,3ah
        JL printit
        ADD al,07h
printit:    MOV dl,al
        MOV ah,2
        INT 21h
        DEC ch
        JNZ rotate
        RET
disp     ENDP
code     ENDS
        END
你自己看了

3 楼


prognam segment
main proc far
           assume cs:prognam
start:

           push ds
           sub  ax,bx
           push ax
           mov  ch,4
rotate     mov cl,4
           rol bx,cl     //循环左移
           mov al,bl
           and al,0fh
           add al,30h
           cmp al,3ah
           jl  printit
           add al,7h
printit:
           mov dl,al
           mov ah,2
           int 21h
           dec ch
           jnz  rorate
           ret
main       endp
prognam    ends
            end



不知道对不对啊,临场发挥
     
   
[em9][em9][em9][em9]

4 楼

能不能给个注示呀!

我来回复

您尚未登录,请登录后再回复。点此登录或注册