1 2 3 4 5
7 8 9 10
13 14 15
19 20
25
要用汇编语言写。
我已经编了一个星期了,仍然编不出个头绪,马上要上交程序了,我是心急如焚!
希望各位高手帮帮忙,小弟在此先谢过了!
data segment
array dw 25 dup(?)
data ends
code segment
main proc far
assume cs:code,ds:data
push ds
mov ax,0
push ax
mov ax,data
mov ds,ax
mov si,0
mov di,0
push si
push di
lea bx,array
lea di,array
start1: cmp si,100
je next
inc si
mov ah,1h ;调用中断从键盘输入一个字符
int 21h
cmp al,20h ;与空格比较
je start2
cmp al,0dh ;与回车比较
je start3
sub al,30h ;将输入的这个字符转化为数字
cmp al,0 ;检查此数是不是在0到9之间
jl next ;如果不在则结束程序
cmp al,9
jg next
cbw ;将al扩展为16进制数
xchg ax,[bx] ;交换ax和bx的值
mov cx,10
mul cx
xchg ax,[bx]
add [bx],ax
jmp start1
start2: inc bx
jmp start1
start3: mov ax,[di]
cmp ax,9d
jg start4
mov cl,10
div cl
add ah,30h
mov dl,ah
mov ah,2
int 21h
inc di
jmp start3
start4: mov cl,10
div cl
mov ch,ah
add al,30h
mov dl,al
mov ah,2
int 21h
add ch,30h
mov dl,ch
mov ah,2
int 21h
inc di
cmp di,bx
jg next
jmp start3
next:
ret
main endp
code ends
end main