(汇编语言)键盘输入五个十进制数,然后求和用十进制输出
dseg segment xh db 10 db 0 db 10 dup(0) db '$' msg0 db 'input xue hao:$' msg1 db 0dh, 0ah, 'The Last digital x 10 = $'dseg endsassume cs:cseg, ds:dsegcseg segmentstart: mov ax, dseg mov ds, ax lea dx, msg0 mov ah,9 int 21h lea dx, xh mov ah,10 int 21h lea dx, msg1 mov ah,9 int 21h xor bh, bh mov bl, xh+1 dec bl mov al,[bx+2] and al,0FH mov bl,10 mul bl call print mov ah,4ch int 21hprint proc near xor cx, cx mov bx, 10Q0: xor dx, dx div bx or dx, 0e30h inc cx push dx cmp ax, 0 jnz Q0Q1: pop ax int 10h loop Q1 retprint endpcseg endsend start
assume cs:codecode segmentstart: mov cx, 10 mov bx, 0 mov ah,1$0: int 21h sub al,30h ;不做输入有效性检查 add bl,al adc bh,0 ;实际上需要,10个9相加也不超过al的范围 loop $0 mov ax, bx call print mov ah,4ch int 21h;print (ax) in decmialprint proc near xor cx,cx mov bx, 10Q0: 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 endsend start
data segmentd1 db 20 dup(0)
data ends
stack segment
db 128 dup(0)
stack ends
code segment
assume cs:code,ds:data,ss:stack
start:
mov ax,data
mov ds,ax
lea di,d1
mov cx,5
l0:
mov ah,1 ;输入数为一位数字连续输入,多位数字时稍加改变即可
int 21h
mov [di],al
inc di
loop l0
cld
mov dl,0
mov bx,000fh
mov cx,5
mov si,0
l1:
lodsb ;将ascii码值转换为二进制并相加
and ax,bx
add dl,al
loop l1
cmp dl,10
jb b1
mov ax,0
mov al,dl
cbw
mov bl,10
div bl
add ah,30h ;讲二进制转换为ascii码
add al,30h
xchg al,ah
mov bx,ax
mov dl,ah
mov ah,2
int 21h
mov dl,bl
mov ah,2
int 21h
jmp b2
b1:
add dl,30h
mov ah,2
int 21h
b2:
mov ax,4c00h
int 21h
code ends
end start
(汇编语言)键盘输入五个十进制数,然后求和用十进制输出
mov ah,1 ;输入数为一位数字连续输入,多位数字时稍加改变即可 int 21h mov [di],al inc di loop l0 cld mov dl,0 mov bx,000fh mov cx,5 mov si,0 l1:lodsb ;将ascii码值转换为二进制并相加 and ax,bx add dl,al loop l1 cmp dl,10 jb b1 mov ax,0 mov al,dl cbw...
如何使用汇编语言实现多位十进制数相加
从键盘上键入2个10位数以内(位数可变)十进制值数,对其求和并显示结果,程序运行时提示请输入加数和被加数,求完和显示结果后,显示继续和退出。code segmentassume cs:code,ds:code org 100h;标准COM格式 start:mov ax,3;文本模式 int 10h push cs pop ds push ds pop es Again:lea dx,mes1;...
汇编语言,键盘任意输入10个1位十进制数,将它们累加求和,把和放在Sum...
汇编语言编程中,处理键盘输入和数值处理是一个常见的任务。假设我们需要编写一段程序,能够接收用户通过键盘输入的10个1位十进制数,并将这些数累加求和。程序将把结果存储在一个名为Sum的单元中,并以十进制形式显示。下面是一个简单的汇编语言示例,展示如何实现这一功能。首先,程序需要初始化环境,定...
使用汇编语言,从键盘上输入0-65535之间的十进制数,将其转换成十六进制数...
;输入不超过65535的10进制数,将其以16位的形式显示code segment assume cs:code org 100hstart: jmp bbbx dw 0msg1 db 10,13,'please input a number:','$'msg2 db 10,13,' ','$'bbb: push cs pop ds lea dx,msg1 mov ah,9 int 21h lea...
c语言和汇编语言混合编程,键盘输入4个十进制数,用汇编语言计算这四
retarray dw 100 dup(0)num dw 0char db ?inputnum endp; 显示十进制整型数值子程序dispnum proc near ; 将要显示的数据放入AX中 mov dx,0 mov bx,10 div bx mov byte ptr[y+6],dl ;保存个位 mov dx,0 div bx mov byte ptr[...
从键盘输入一个4位以内的10进制数字字符串,转换成16进制形式输出。
; 功能:键盘输入一个指定位数(N)的十进制数字,将其转换成二进制数并保存在指定的内存单元。; 输足N位的,自动结束输入;不足N位的,空格结束输入。; 由于限定最大数据类型为字,所以,数字位数最多:5,最大无符号数:65536; 约定:直接回车,视为数字0; 入口:cs:@@Digits=数字位数;es:di=保存输入的数字首地址...
,C语言和汇编语言混合编程,键盘输入 4个数十进制数, 用汇编语言计算这4...
MOV BIN, 0 ;先把二进制数字单元清零 LEA SI, HEX + 2;取输入字符串的首地址 MOV CH, NNN ;取输入字符的个数,用来控制循环处理的次数 CONV:MOV BL, [SI] ;取来一个字符 CMP BL, 0DH ;和回车符进行比较 JZ END0 ;是, 即结束 CMP BL, '0'JB ERROR...
急求汇编语言问题!!!
;从键盘输入9个十进制数(数与数之间用空格隔开);再输入的一个序号(1-9),输出对应的数。输入0结束。;以上要求均已满足。;程序如下:;--- DISP_STR MACRO X ;宏定义.MOV DX, OFFSET X MOV AH, 9 INT 21H ENDM ;--- DATA SEGMENT ;数据段.MSG1 DB 13, 10, 'Pleas...
用汇编语言编写:从键盘输入一个十进制数(100以内),将其转变为二进制数...
NUMBER DB 3 DB ?db 3 DUP(0)DSEG ENDS CSEG SEGMENT assume cs:CSEG, ds:DSEG MAIN PROC FAR mov ax, dseg mov ds, ax lea dx,INPUT mov ah,9 int 21h lea dx,NUMBER mov ah,0ah int 21h lea dx,OUTPUT mov ah,9 int 21h mov bl,NUMBER+2 sub bl,30h cmp NUMBER+1,1 jz...
8086汇编语言编写,键盘输入4位16进制数,屏幕输出对应的十六进制数,十进...
30h int 10h loop b0 mov al,'B' int 10h retprintBin endpprintDec proc near push bx xor cx, cx mov bx, 10d0: xor dx, dx div bx xor dx, 0e30h push dx inc cx cmp ax, 0 jnz d0d1: pop ax int 10h loop d1 ...