键盘输入的数值如何变二进制
答案:2 悬赏:30 手机版
解决时间 2021-02-27 11:42
- 提问者网友:世勋超人
- 2021-02-26 12:23
键盘输入的数值如何变二进制
最佳答案
- 五星知识达人网友:鸽屿
- 2021-02-26 13:52
你说的不清不楚,不大懂你意思,键盘输入的值对应ASSIC值,物理存储上就是以2进制存储的,如果你想转换直接查表,如果你想printf输出的话好像没有这选项,只能8 10 16进制输出,如果一定要二进制,可以自己写个转换函数
全部回答
- 1楼网友:雾月
- 2021-02-26 14:33
以下程序,可以的: ;================================== data segment buf1 db 10, 13, 'please input bin : ', 13, 10, '$' buf2 dw 0 data ends ;---------------------------------- code segment assume cs:code, ds:data, es:data beg: mov ax, data mov ds, ax mov ah, 09h mov dx, offset buf1 int 21h mov bx, 0 mov cx, 16 _in_: mov ah, 07h ;输入字符 int 21h cmp al, 13 je _out_ cmp al, '0' jb _in_ cmp al, '1' ja _in_ add bx, bx cmp al, '1' jne no_0 inc bx no_0: mov ah, 02h mov dl, al int 21h loop _in_ mov buf2, bx ;保存 ;-------------------------- _out_: mov ah, 02h mov dl, 13 int 21h mov dl, 10 int 21h mov ax, buf2 mov bx, 2 call out_ax mov ah, 02h mov dl, 'b' int 21h mov dl, '=' int 21h mov ax, buf2 mov bx, 10 call out_ax mov ah, 02h mov dl, 'd' int 21h exit: mov ah, 4ch int 21h ;------------------------------ out_ax proc ; or ax, ax jz _0_ loop_p: xor dx, dx div bx mov cx, ax ; or cx, dx jz _e_ ; push dx ; call loop_p pop dx ; cmp dl, 10 jb a30 add dl, 7 a30: add dl, '0' ; jmp _1_ _0_:mov dl, '0' ; _1_:call putc _e_:ret out_ax endp ;------------------------------ putc proc mov ah, 2 int 21h ret putc endp ;------------------------------ code ends end beg ;==================================
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
推荐资讯