欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

汇编语言(七)之求无符号字节序列中的最大值和最小值(子程序实现)

程序员文章站 2024-02-02 18:23:22
...

汇编语言:求无符号序列中的最大值和最小值(子程序实现)

题目要求

求无符号字节序列中的最大值和最小值。设有一字节序列,其存储首地址为3000H,字节数为08H。利用子程序的方法求出该序列中的最大值和最小值。

程序代码及运行

废话少说,直接上代码,流程图附于文章末尾

运行环境

Windows10
DOSBox0.74-3,Cpu speed:3000cycles

代码

	data segment
	org 3000h
		db 0d9h,07h,8bh,0c5h,0ebh,04h,9dh,0f9h
	data ends
	stack1 segment stack
		dw 64 dup(?)
	stack1 ends
	code segment
	assume cs:code ds:data
	start:
		mov ax,data
		mov ds,ax
		
		mov si,3000h
		mov cx,0008h
		call maxmin;子程序
		
		mov ax,4c00h
		int 21h
	maxmin proc near
		push bx
		mov bh,[si]
		mov bl,bh
	cond1:
		lodsb;[si]->al,si+1
		cmp al,bh
		jbe cond2
		mov bh,al
		jmp cond3
	cond2:
		cmp al,bl
		jae cond3
		mov bl,al
	cond3:
		loop cond1
		mov ax,bx
		pop bx	
	cond4:
		ret
	maxmin endp
	code ends
	end start	

流程图

只提供子程序流程图

Created with Raphaël 2.2.0子程序开始[si]->bh,bh->bllodsbal<=bh?al>=bl?cx==0?结束al->blal->bhyesnoyesnoyesno