用汇编语言在下列数组中3,5,6,2,9,4,1,8,7 查找最大数和最小数,并存放到变量max和min中,同时在屏幕上显示结果,程序能够在masm5环境下dosbox0.74中运行
时间: 2023-12-20 19:04:50 浏览: 63
汇编语言 求出最大数和最小数
下面是汇编程序的代码:
```
.model small
.stack 100h
.data
arr db 3,5,6,2,9,4,1,8,7
size equ 9
max db ?
min db ?
.code
main proc
mov ax, @data
mov ds, ax
; 初始化max和min变量
mov al, arr
mov max, al
mov min, al
; 逐个比较数组元素,更新max和min变量
mov cx, size
mov si, offset arr + 1 ; si指向arr的第二个元素
cmp cx, 1
jle done
loop1:
mov al, [si]
cmp al, max
jg update_max
cmp al, min
jl update_min
jmp next_iter
update_max:
mov max, al
jmp next_iter
update_min:
mov min, al
next_iter:
inc si
loop loop1
done:
; 在屏幕上显示结果
mov ah, 09h
mov dx, offset msg1
int 21h
mov ah, 02h
mov dl, max
add dl, 30h
int 21h
mov dl, ','
int 21h
mov dl, min
add dl, 30h
int 21h
mov dl, '$'
int 21h
mov ah, 4ch
int 21h
main endp
msg1 db 'The max and min numbers are: $'
end main
```
你可以将上述代码保存为一个文件,比如 `maxmin.asm`,然后在 DOSBox 中执行以下命令来编译和运行程序:
```
masm maxmin.asm
link maxmin.obj
maxmin.exe
```
程序会输出最大数和最小数。注意,这里假设你已经安装了 MASM 5 和 DOSBox。
阅读全文