三个数降序排列(汇编)
程序员文章站
2022-05-28 13:02:50
...
问题描述
将X、Y、Z三个数按降序排序
数据段定义
X DB 20H
Y DB 50H
Z DB 30H
大致思路
AH—最大值
AL—中间值
BH–最小值
- 如果X > Y
- 继续判断Y是否大于Z
- 如果大于(X > Y > Z)
- 如果小于
- 判断X是否大于Z
- 如果大于 (X > Z > Y)
- 如果小于(Z > X > Y)
- 判断X是否大于Z
- 继续判断Y是否大于Z
我将 AH放置最大值、AL放置中间值、BH放置最小值
不是C语言常规思路,将XYZ放置对应的值
完整代码
DATA SEGMENT
X DB 20H
Y DB 50H
Z DB 30H
DATA ENDS
CODE SEGMENT 'CODE'
ASSUME CS:CODE, DS:DATA
START:
MOV AX , DATA
MOV DS, AX
;----
MOV CL , X
CMP CL , Y
JA JudgeYZ
JudgeYZ:
MOV CL , Y
CMP CL , Z
JA XYZ
MOV CH , X
CMP CH, Z
JA XZY
MOV AH , Z
MOV AL , X
MOV BH , Y
XYZ:
MOV AH , X
MOV AL , Y
MOV BH , Z
XZY:
MOV AH , X
MOV AL , Z
MOV BH , Y
;---
MOV AH,4CH
INT 21H
CODE ENDS
END START
注意:
- 如果跳转了,不主动跳回是不会自动顺序继续执行的,而是在跳转的位置继续执行
CMP
不能直接比较两个直接数(寄存器)
上一篇: 解决Python print 输出文本显示 gbk 编码错误问题
下一篇: 变量-1.1