汇编语言 怎样将数字输出,为什么? 讲讲原理

听同学说要转换成ascii 码才能输出,这是为什么?给我讲讲原理,我不要程序!

如果要用汇编显示东西,一般是调用中断来完成的(一般是int 21h),这里的int 21h其实是一个子程序,他是系统(dos)本身帮你写好了的,不用你管,你只要按要求把东西提供给他他就会完成它的功能,在汇编书上一般都有int 21h的功能说明,其中在int 21h里有显示字符,显示字符串两个功能,如果你想调用int 21h里显示字符的功能,那你要在程序里让ah=02h,dl=要显示字符的asc码?,就这样:
mov ah,02h
int 21h
(假设dl里已经放好东西了)
这样就会在屏幕上显示dl里面的对应的字符,
同理显示字符串你看看书上也有。
但是int 21h这个程序只有他们,而没有显示数字的功能,所以你要把想显示的数转换为asc或字符串才能用int 21h 显示。
温馨提示:答案为网友推荐,仅供参考
第1个回答  2017-12-29
如果要用汇编显示东西,一般是调用中断来完成的(一般是int 21h),这里的int 21h其实是一个子程序,他是系统(dos)本身帮你写好了的,不用你管,你只要按要求把东西提供给他他就会完成它的功能,在汇编书上一般都有int 21h的功能说明,其中在int 21h里有显示字符,显示字符串两个功能,如果你想调用int 21h里显示字符的功能,那你要在程序里让ah=02h,dl=要显示字符的asc码?,就这样:
mov ah,02h
int 21h
(假设dl里已经放好东西了)
这样就会在屏幕上显示dl里面的对应的字符,
同理显示字符串你看看书上也有。
但是int 21h这个程序只有他们,而没有显示数字的功能,所以你要把想显示的数转换为asc或字符串才能用int 21h 显示。
第2个回答  2013-10-22
所谓汇编语言就是机器语言,在内存中都是以十六进制存储的 每个数字与一个十六进制的ASCII码相对应 比如说1对应31H ;0对应30H,那么如果你想输出100 相应传入的数据就应该是31H、30H、30H。
第3个回答  2018-12-05
DATA SEGMENT
DATA ENDS
DATAA SEGMENT
DATA2 DB 1,2,4,3,5,6,7,8,1
DATAA ENDS
STACK1 SEGMENT STACK
DW 100 DUP(0)
STACK1 ENDS
CODE SEGMENT
ASSUME CS:CODE,SS:STACK1,ES:DATAA,DS:DATA
START:
MOV AX,DATA
MOV DS,AX
MOV AX,DATAA
MOV ES,AX
XOR AX,AX
MOV CX,9
CLD
LEA DI,ES:DATA2
MOV AL,6
REPNE SCASB
JCXZ L1
MOV DL,[DI-1]
ADD DL,30H
MOV AH,02H
INT 21H
L1:
MOV AH,4CH
INT 21H
CODE ENDS
END START
相似回答