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

听同学说要转换成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

汇编语言 怎样将数字输出,为什么? 讲讲原理
如果要用汇编显示东西,一般是调用中断来完成的(一般是int 21h),这里的int 21h其实是一个子程序,他是系统(dos)本身帮你写好了的,不用你管,你只要按要求把东西提供给他他就会完成它的功能,在汇编书上一般都有int 21h的功能说明,其中在int 21h里有显示字符,显示字符串两个功能,如果你想调...

在汇编语言中哪个中段是输出数字的?
没法直接输出数字,想要输出数字就要把数字转化成对应的ASCII字符,比如你要在屏幕输出一个‘7’,你就要把‘7’的ascii码(37)写入DL寄存器,然后调用int 21h中断的字符输出功能,功能号是02,即AH=02h时执行int 21h命令。输出数字串也可以。要用DS:DX指向已经转换成ascii的待输出数字字符串地址,字符...

汇编如何输出大于50的个数
1. 首先,我们需要定义一个计数器变量,用于记录大于50的个数。可以使用寄存器来保存这个变量,比如使用AX寄存器。2. 然后,我们需要定义一个数组,用于存储需要比较的数值。可以使用数据段或堆栈来保存这个数组。3. 接着,我们需要使用循环来遍历数组中的每个数,判断是否大于50。可以使用CX寄存器来保存循...

汇编语言 怎样用显示器输出数字
简单说下~~ 怎样用显示器输出数字 把你要显示的东西写进显存~~ 例如 mov ax,0b800h \/\/这是显存的起始地址 mov ds,ax mov si,0 mov cx,2000 s: mov ds:[si],41h mov ds:[si+1],2 loop s ds:[si]低位存值 ds:[si+1]高位存颜色 也就是2个字节显示一个字符什么的~~ 依此类推...

汇编语言中把数据打印到屏幕上的指令是什么啊?急求答案
汇编语言能把数据打印到屏幕上的指令有以下几个:1 mov ah,01h;键盘输入一个字符保存在al里,比如说“2”,那么它将会以“32”的形式被保存 ;在al里面,其中“32”是十六进制的 int 21h ;这样就完成了一个dos的01号功能调用 2 mov ah,02h;这是现实dl里面的字符的,如:mov...

汇编语言从键盘输入一个数字(即个位数),以十进制形式输出该数的...
输入DB'输入一个数字:','$'输出DB 32,“结果是:','$'NUMBER DB 3 DB?DB 3 DUP(0)DSEG ENDS 的CSEG分类 假设CS:DS:CSEG,DSEG MAIN PROC FAR MOV AX,DSEG MOV DS,AX LEA DX,输入 MOV AH,9 INT 21H LEA DX,NUMBER MOV AH,0AH BR \/> INT 21H LEA DX,输出 MOV AH...

汇编语言,如何将输入的十六进制数转换成十进制数输出
输入一个多位十六进制数,显示等值的十进制。输入字符,需要减去 37H 或 30H,变换为十六进制数字。再组成一个多位数。显示之前,则需要相反的变化。本程序具有对输入数据进行合法性判断的功能。输入非十六进制数的符号时,本程序将不做反应。

【微机原理】1.汇编语言程序设计(1)
在探索微机原理的迷人世界中,我们往往会发现,传统的汇编语言学习路径可能会让初学者感到困惑。实际上,理解内存指令执行方式是关键,就像学习高级编程语言一样。让我们以一个简单实例来揭开汇编的神秘面纱:给定存储在内存中的a和b,我们要让CPU执行加法并将结果存入c,最后输出c的值。这与C语言中的变量...

汇编语言,把二进制转为十进制显示输出,怎么写,什么思路,不懂,求大神...
一个二进制数字:0~65535。要分离出来十进制的:个、十、百、千、万,分别是 0~9。在显示前,还要变成对应的 ASCII 码。http:\/\/blog.163.com\/asm_c\/blog\/static\/2482031132014485120795\/ 参考。

汇编语言怎样将内存中的数据在屏幕上以十六进制形式显示出来
以前回答过本题目。但是,已经打不开了。后来,有人留言,还想得到此题的答案。为此,重新解答如下:本程序运行的结果,是显示:3A4F。

相似回答