注册 登录
编程论坛 汇编论坛

新手求助:关于如何输出字符ASCII码的问题

oke00 发布于 2009-11-04 20:24, 3250 次点击
code segment
     assume cs:code
start:mov ah,07h
      int 21h
      mov cx,8
again:rol al,1
      mov bl,al
      and al,1h
      add al,30h
      mov dl,al
      mov ah,02h
      int 21h
      mov al,bl
      loop again
mov ah,4ch
int 21h
code ends
     end start

这段代码中的 and al,1h  add al,30h 为何先要屏蔽al的最高位然后再加30h,希望能解释一下原因...

受这段代码的启发我写下了以下东西,不过不能工作只显示0000 00000
code segment
    assume cs:code
start:
    mov ah,07
    int 21H
    mov cx,8
LP:
rol al,1
jc D1
mov dl,30H
jmp OUTP
D1:mov dl,31H
OUTP: mov ah,2
int 21H
loop LP
mov ah,4ch
int 21H
code ends
end start   

     
3 回复
#2
onepc2009-11-06 08:42
这个能输出assci码么?我输入进去后输出怎么不对????
#3
xiaobinkitty2009-11-06 11:01
不是屏蔽最高位,是取最高位。0和1ASCII码就是30H和31H啊,你输出0和1自然要加30H。
#4
oke002009-11-09 12:48
回二楼:输出的ascii码为16进制





[ 本帖最后由 oke00 于 2009-11-9 15:57 编辑 ]
1