汇编语言程序的题,高手快来!!
发布网友
发布时间:2022-05-18 06:38
我来回答
共2个回答
热心网友
时间:2023-10-10 11:54
; 本程序在MASMPlus 1.2集成环境下通过编译,经过调试,运行正确。
Code Segment
Assume CS:Code,DS:Code
Number dw 5678,1234,4567 ;
Press_Key db 7,13,10,13,10,'The complated. Press any key to exit...$'
Start: push cs
pop ds
push cs
pop es
mov ax,Number ;读入第一个数
cmp ax,Number[2] ;小于或等于第二个数?
jle $+9 ;是,不交换数据
xchg ax,Number[2] ;与第二个数交换
mov Number,ax ;较小的数作为第一个数
cmp ax,Number[4] ;小于或等于第三个数?
jle $+9 ;是,不交换数据
xchg ax,Number[4] ;与第三个数交换
mov Number,ax ;较小的数作为第一个数
mov ax,Number[2] ;读入第二个数
cmp ax,Number[4] ;小于或等于第三个数?
jle $+9 ;是,不交换数据
xchg ax,Number[4] ;与第三个数交换
mov Number[2],ax ;较小的数作为第二个数
; -------------------------------------
Exit_Proc: lea dx,Press_Key ;提示操作完成,按任意键结束程序
mov ah,9
int 21h
mov ah,1
int 21h
mov ah,4ch ;结束程序
int 21h
Code ENDS
END Start ;编译到此结束
结束语:此题属于有符号数的升序排序问题。
因为元素个数太少,我就简单编了那么几句; 若是元素个数多的情况,请参见下方的参考资料。
参考资料:http://zhidao.baidu.com/question/101001701.html
热心网友
时间:2023-10-10 11:54
老大,什么时候的东西了,忘光光了!
帮你翻出来一份NNNN年前我的习题,类似一道题,你参考一下把。
是把非压缩BCD码使用比较法排序:
data segment
dat db 5, 3, 7
count dw 3
data ends
code segment
assume cs:code, ds:data
start: mov ax, data
mov ds, ax
mov dx, count
dec dx
lea si, dat
L0: mov di, si
inc di
mov al, [si]
mov cx, dx
L1: cmp al, [di]
jle L2
xchg al, [di]
mov [si], al
L2: inc di
loop L1
inc si
dec dx
jnz L0
lea si, dat
mov cx, count
L3: mov dl, [si]
add dl, 30h
mov ah, 02h
int 21h
mov dl, ','
mov ah, 02h
int 21h
inc si
loop L3
mov ah, 4ch
int 21h
code ends
end start