汇编语言寻找最大数(有/无符号,最大/最小)


在DATA1开始的存储区中存放了100个8位无符号数,找出其中最大数存放入MAX单元中

	MOV BX,OFFISET DATA1 		;取得DATA1的偏移地址
	MOV AX,[BX]			;给AX赋一个初值 用于最开始的比较
	MVO CX,93H			;计数顺序
P1:	INC BX				;指向下一个数
	CMP AX,[BX]			;比较两个数
	JAE NEXT			;无符号数条件转移(AX>=BX)发生转移
	MOV AX,[BX]			;JAE未发生跳转说明AX<BX 把较大的[BX]赋值给AX
NEXT:	DEC CX				;计数器减一
	JNZ PI				;判断 计数器是否到0
	MOV MAX,AL			;大功告成复制
	HLT

如果题目中将100个改成200个我们只需要修改CX计数器的值改为C7(199)就ok

如果题目中将大于改成小于 MAX改为MIN我们只需要将JAE改为JB即可

如果题目中说存放的是有符号数的话,我们只需要使用带符号的比较指令就可以轻松完成

JGE 有符号转移指令 目的操作数>=原操作数 发生转移

CMP AX,BX
JGE NEXT	;AX>=BX 发生转移

JL 目的操作数 < 原操作数发生转移

MOV AX,BX
JL NEXT  ;AX<BX 发生转移

附: 跳转指令规则快速记忆表
无符号

J A B E N
JMP 大于 小于 等于 取反

例子 JAE

CMP AX,BX
JAE NEXT  ;AX>=BX 发送跳转

有符号

J G L E N
JMP 大于 小于 等于 取反


免责声明!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系本站邮箱yoyou2525@163.com删除。



 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM