求一道汇编上机题
发布网友
发布时间:2022-06-01 01:41
我来回答
共2个回答
热心网友
时间:2023-11-08 23:51
DSEG SEGMENT
n equ 5
BUF db 5 DUP(?)
DSEG ENDS
CSEG SEGMENT
assume cs:CSEG, ds:DSEG
MAIN PROC FAR ;主程序入口
mov ax, dseg
mov ds, ax
;从键盘接收5位十六进制数
mov dh,5
mov si,0
next1:
mov dl,2
mov bl,0
next2:
mov ah,1
int 21h
sub al,30h
cmp al,9
jbe next3
sub al,7
next3:
mov cl,4
rol bl,cl
add bl,al
dec dl
jnz next2
mov buf[si],bl
inc si
dec dh
jnz next1
;对BUF中的数排序
mov cx,n
dec cx
loop1: mov di,cx
mov bx,0
loop2: mov al,BUF[bx]
cmp al,BUF[bx+1]
jge continue
xchg al,BUF[bx+1]
mov BUF[bx],al
continue: add bx,1
loop loop2
mov cx,di
loop loop1
;将排序后的数在屏幕上显示出来
mov dh,5
mov si,0
next4:
mov ch,2
mov bl,buf[si]
next5:
mov cl,4
ror bl,cl
mov dl,bl
and dl,0fh
add dl,30h
cmp dl,39h
jbe next6
add dl,7
next6:
mov ah,2
int 21h
dec ch
jnz next5
inc si
dec dh
jnz next4
;按任意键退出
mov ah,1
int 21h
mov ax, 4c00h ;程序结束,返回到操作系统系统
int 21h
MAIN ENDP
CSEG ENDS
END MAIN
热心网友
时间:2023-11-08 23:52
楼主,要好好学习,不要偷懒。
看程序和写程序差别很大,尤其是初学阶段