汇编求最大值和最小值
时间: 2023-09-23 12:03:47 浏览: 162
下面是汇编语言实现求最大值和最小值的示例代码:
```
; 伪指令
.model small
.stack 100h
; 数据段
.data
array db 8, 5, 2, 6, 4, 7, 1, 3
n equ 8
; 代码段
.code
main proc
mov ax, @data
mov ds, ax
; 初始化最大值和最小值
mov al, array[0] ; 最小值
mov bl, array[0] ; 最大值
; 求最大值和最小值
mov cx, n
dec cx
mov si, 1
loop1:
cmp array[si], al
jl update_min
cmp array[si], bl
jg update_max
update_min:
mov al, array[si]
jmp next_iteration
update_max:
mov bl, array[si]
next_iteration:
inc si
loop loop1
; 显示结果
mov ah, 09h
mov dx, offset msg1
int 21h
mov dl, al
add dl, 48 ; 转换成 ASCII 码
int 21h
mov dx, offset msg2
int 21h
mov dl, bl
add dl, 48
int 21h
mov ah, 4ch
int 21h
main endp
; 数据段
msg1 db 'Min: ', 0
msg2 db 'Max: ', 0
end main
```
这段代码使用了一个循环来遍历数组,同时使用两个寄存器 `al` 和 `bl` 分别存储最小值和最大值。在循环中,每次比较当前元素和最小值以及最大值,并更新相应的寄存器。最后将结果显示在屏幕上。在代码中,`array` 数组是待求值的数组,`n` 是数组的长度。最小值存储在 `al` 中,最大值存储在 `bl` 中。