微机——LOOP循环

计数控制法例子

  • 微机原理与接口技术——LOOP循环

实现思路如下

  • 先取第一个数送入寄存器al中,将al中的数依次与后面的count-1个数进行比较,若al中的数较小,则将较大的数送入al寄存器中;若al中的数比较大,则al保持不变;在比较的过程中,始终保持al中存放较大的数,比较count-1次后,al中的数即为最大数,再将其送到max中。

代码如下

DATA SEGMENT
BUF	DB	3,23,90,135,30,70
COUNT	EQU	$-BUF
MAX	DB	?
DATA	ENDS	

CODE	SEGMENT
	ASSUME CS:CODE, DS:DATA
START:
	MOV AX, DATA
	MOV DS, AX

	MOV BX, OFFSET BUF	;获取buf的偏移地址
	MOV CX, COUNT-1		;cx为比较的次数
	MOV AL, [BX]		;取数组第一个元素
	
ALP:	INC BX			;指针加加
	CMP AL, [BX]		;取出后一个元素与al比较
	JAE NEXT			;如果al大于等于所比较的元素,跳转到next
	MOV AL, [BX]		;al小于所比较元素,将所比较的元素存到al

NEXT:	LOOP ALP			;若cx不为0,循环继续跳到alp
					;为零,则跳出循环往下执行
	MOV MAX, AL			;将数组中最大值存入max
	
	MOV AH, 02H			;只能显示ASCII中可显示的字符
	MOV DL, AL
	INT 21H

	MOV AH, 4CH
	INT 21H

CODE ENDS
	END START

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值