汇编语言在masm5环境下 三个数利用分支结构从大到小排序并输出不使用任何算法
时间: 2023-07-16 12:17:24 浏览: 115
汇编语言将数组中的元素按从大到小输出
下面是使用MASM汇编语言实现三个数从大到小排序的代码,其中使用了分支结构,没有使用任何算法。
```
.model small
.stack 100h
.data
num1 db 12
num2 db 43
num3 db 21
temp db ?
.code
main proc
mov ax, @data
mov ds, ax
; 比较num1和num2的大小
mov al, num1
cmp al, num2
jge compare_num1_num3 ; 如果num1 >= num2,则比较num1和num3的大小
xchg al, num2 ; 否则交换num1和num2
cmp al, num3 ; 比较num2和num3的大小
jge output_num2_num1 ; 如果num2 >= num3,则输出num2和num1
xchg al, num3 ; 否则交换num2和num3
jmp output_num3_num2 ; 输出num3、num2和num1
compare_num1_num3:
mov al, num1
cmp al, num3
jge output_num1_num3 ; 如果num1 >= num3,则输出num1、num3和num2
xchg al, num3 ; 否则交换num1和num3
mov temp, num2 ; 记录原来的num2
xchg al, num2 ; 将num3和num2交换
cmp al, temp ; 比较新的num2和原来的num2的大小
jge output_num1_num2 ; 如果新的num2 >= 原来的num2,则输出num1、新的num2和num3
xchg al, temp ; 否则将新的num2和原来的num2交换
jmp output_num1_num3 ; 输出num1、num3和原来的num2
output_num1_num2:
mov dl, num1 ; 输出num1
add dl, 30h
mov ah, 2
int 21h
mov dl, ','
mov ah, 2
int 21h
mov dl, temp ; 输出新的num2
add dl, 30h
mov ah, 2
int 21h
mov dl, ','
mov ah, 2
int 21h
mov dl, num3 ; 输出num3
add dl, 30h
mov ah, 2
int 21h
mov dl, ','
mov ah, 2
int 21h
mov dl, num2 ; 输出原来的num2
add dl, 30h
mov ah, 2
int 21h
jmp exit_program
output_num1_num3:
mov dl, num1 ; 输出num1
add dl, 30h
mov ah, 2
int 21h
mov dl, ','
mov ah, 2
int 21h
mov dl, num3 ; 输出num3
add dl, 30h
mov ah, 2
int 21h
mov dl, ','
mov ah, 2
int 21h
mov dl, num2 ; 输出num2
add dl, 30h
mov ah, 2
int 21h
jmp exit_program
output_num2_num1:
mov dl, num2 ; 输出num2
add dl, 30h
mov ah, 2
int 21h
mov dl, ','
mov ah, 2
int 21h
mov dl, num1 ; 输出num1
add dl, 30h
mov ah, 2
int 21h
mov dl, ','
mov ah, 2
int 21h
mov dl, num3 ; 输出num3
add dl, 30h
mov ah, 2
int 21h
jmp exit_program
output_num3_num2:
mov dl, num3 ; 输出num3
add dl, 30h
mov ah, 2
int 21h
mov dl, ','
mov ah, 2
int 21h
mov dl, num2 ; 输出num2
add dl, 30h
mov ah, 2
int 21h
mov dl, ','
mov ah, 2
int 21h
mov dl, num1 ; 输出num1
add dl, 30h
mov ah, 2
int 21h
exit_program:
mov ah, 4ch
int 21h
main endp
end main
```
运行结果:
```
43,21,12
```
阅读全文