汇编 输出 两位数

作者&投稿:绽妮 (若有异议请与网页底部的电邮联系)
汇编语言,实现键盘输入两位数比较大小并显示结果~

以下是无符号数的程序。供参考:code segment assume cs:code org 100hstart: jmp bbbmsg1 db 10,13,'please input x:','$'msg2 db 10,13,'please input y:','$'x db 0y db 0msg3 db 10,13,'x=y','$'msg4 db 10,13,'x>y','$'msg5 db 10,13,'x<y','$'bbb: push cs pop ds lea dx,msg1 mov ah,09h int 21h mov ah,1 int 21h sub al,30h mov ah,0 mov bl,10 mul bl mov cl,al mov ah,1 int 21h sub al,30h mov ah,0 add al,cl mov byte ptr[x],al lea dx,msg2 mov ah,09h int 21h mov ah,1 int 21h sub al,30h mov ah,0 mov bl,10 mul bl mov cl,al mov ah,1 int 21h sub al,30h mov ah,0 add al,cl mov byte ptr[y],al mov bl,byte ptr[x] sub al,bl jz l1 jc l2 jmp l3l1: lea dx,msg3 mov ah,9 int 21h jmp exit1l2: lea dx,msg4 mov ah,9 int 21h jmp exit1l3: lea dx,msg5 mov ah,9 int 21h; jmp exit1exit1: mov ah,4ch int 21hcode ends end start

data segment x db 10 db ? db 10 dup(0) y dw 0 istr db 'Input a numbe(<256):$' crlf db 0dh, 0ah,'$'data endsassume cs:code, ds:datacode segmentstart: mov ax, data mov ds, ax lea dx, istr mov ah,9 int 21h lea dx, x mov ah,0ah int 21h lea dx, crlf mov ah,9 int 21h call convert2bin mov ax, y call print mov ah,4ch int 21h;convert string x to numberconvert2bin proc near mov ch,0 mov cl, x[1] mov dl,10 mov bx,0 mov ah,0c0: mov al,x[2+bx] and al,0fh xchg ax, y mul dl xchg ax, y add y, ax inc bx loop c0 retconvert2bin endpprint proc near xor cx, cx mov bx, 2Q0: xor dx,dx div bx xor dx, 0e30h push dx inc cx cmp ax, 0 jnz Q0Q1: pop ax int 10h loop Q1 retprint endpcode ends end start

两位十进制数的输出方法:
将要输出的数据除以10,除法的商既为十位,余数为个位。将十、个位顺序输出即可。
如欲输出35:
mov ax,35
mov bl,10
div bl;余数在ah,商在al
mov dx,ax
add dx,3030h;转化成十\个位对应的ASCII码
mov ah,2
int 21h
mov dl,dh
mov ah,2
int 21h

汇编啊,忘得差不多了

我给你个建议把

我记得当初写程序时,一般这样:AX,不是由高位和低位吗?
向左移位,把高位部分放到输出的那个寄存器,忘了。

反正就是这个思想,分别顺序的输出高位和低位。

哎..惭愧,忘干净了

输入的十进制?存的时候是以二进制存放的,也就是说只有01,对照ASCII码看看

刚才看看书,输出的寄存器DX的低位DL,
你可以依次把AX的AH和AL放到DL,然后输出。。

分两次输出呗,也就多写两三行代码

如果是十位数,最好就用循环,不过35也就两位数,分两次就OK了

str db '%d '
EXTRN _printf:NEAR
movsx eax,ax
push eax
mov eax,offset str
push eax
call _printf


大庆市15376524391: 汇编 输出 两位数 -
雷澜吉非: 两位十进制数的输出方法:将要输出的数据除以10,除法的商既为十位,余数为个位.将十、个位顺序输出即可.如欲输出35:mov ax,35 mov bl,10 div bl;余数在ah,商在al mov dx,ax add dx,3030h;转化成十\个位对应的ASCII码 mov ah,2 int 21h mov dl,dh mov ah,2 int 21h

大庆市15376524391: 汇编语言 输入一个两位数,求除以10的商和余数输入一个两位整数;进行不带符号除法,除以10;输出商;输出余数. -
雷澜吉非:[答案] 用 DIV AB 指令. 如 9 除 2 MOV A,#9 MOV B,#2 DIV AB ;9除2 则 A 中为商:4 则 B 中为余数:1

大庆市15376524391: 用汇编语言实现从键盘输入两个2位数并进行相加,最后输出结果 -
雷澜吉非: DATAS SEGMENT ;数据段 DATA1 DB 31H,32H,38H,34H,37H ;定义DATA1为被加数 DATA2 DB 34H,35H,39H,37H,31H ;定义DATA2为加数 DATAS ENDS STACKS SEGMENT ;堆栈段 STA DB 64 DUP(0) ;(伪指令)为STA预留64个...

大庆市15376524391: 汇编中想输出双字怎么输出? -
雷澜吉非: 双字,32个二进制位,写一个循环,从高位开始将每四位一组循环移位到32位的最低位四位,然后将这低四位转化为16进制数或十进制数,调用DOS功能输出.循环输出,一共输八次,一个双字就出来了.

大庆市15376524391: 汇编语言如何输入数字 -
雷澜吉非: 问题中的数字应该指的是数值常量(常数).8086汇编语言中的数值常量可用二进制或8进制或10进制或16进制表示,在数值末尾要分别加上B、O、D(可省略)、H的后缀以进行区分.如:数值10可分别表示为:00001010B、12O、10D(或10)、0AH. 输入时,以下语句等价: x db 00001010b x db 12O x db 10 x db 0AH

大庆市15376524391: 汇编语言:编写一个程序,显示AL寄存器中的两位十六进制数 -
雷澜吉非: data segment data ends stack segment db 256 dup(?) stack ends code segment assume cs:code, ds:data, ss:stack start: mov ax, data mov ds, ax mov ax, stack mov ss, ax mov al, 0c5h call disp_al mov al, 065h call disp_al mov ah, 04ch int 21h;disp...

大庆市15376524391: 汇编语言编写程序:两个十进制两位数相乘,并输出结果,跪求啊啊啊!!
雷澜吉非: ;两位十进制数相加,并将结果输出 mov ah,1 int 21h mov bh,al and bh,0fh mov ah,1 int 21h mov bl,al and bl,0fh mov ah,2 mov dl,'+' int 21h mov ah,1 int 21h mov ch,al and ch,0fh mov ah,1 int 21h mov cl,al and cl,0fh add bh,ch;cmp bl,'9';add bl,2h ...

大庆市15376524391: 汇编语言实现两位数输入 -
雷澜吉非: mov ah,2 ;输入高位 int 21h mov bl,al mov cl,4 shl bl,cl mov ah,2 ;输入低位 int 21h and al,0fh or bl,al ;bl中是输入的两位数

大庆市15376524391: 52单片机实现两位数按键计数,汇编语言 -
雷澜吉非: 又有按键又有数码管,即应该先画仿真图或原理图,确定硬件连接关系后才能写程序.如果是实物开发板,就更应该给出原理图,否则,写出来的程序与开发板不符,那程序也没用.可以用仿真图来调试程序.

大庆市15376524391: 在汇编里输入十进制,怎样输出十进制?? -
雷澜吉非: 当输出一位十进制的时候,情况比较简单add ax,30H;转换为ASCII码 mov dx,ax mov ah,2 int 21H ;显示十进制数数当输出两位数以上的时候,就要注意压栈与出栈了: 除数是8位的时候要压AX,除数是16位时候要压DX下面是一个显示1加...

本站内容来自于网友发表,不代表本站立场,仅表示其个人看法,不对其真实性、正确性、有效性作任何的担保
相关事宜请发邮件给我们
© 星空见康网