综合实验 :用从网上下载 8086 汇编模拟工具 (Emu8086) v3.07 绿色汉化版调试书本中的 仔细阅读案例 3.18 ,输出案例 3.9 中的最大值和最小值。 将3.18程序作为3.19的一个子程序,利用3.18将3.9中的最大值和最小值输出。 ;========================================================= ; 文件名 : wj0309.asm ; 功能描述 : 求数组元素的最大值和最小值。 ;========================================================= .model small .stack .data array dw 10 ; 假设一个数组,其中头个数据 10 表示元素个数 dw -3,0,20,900,587,-632,777,234,-34,-56 ; 这是一个有符号字量元素组成的数组 maxay dw ? ; 存放最大值 minay dw ? ; 存放最小值 .code start: mov ax,@data mov ds,ax lea si,array mov cx,[si] ; 取得元素个数 dec cx ; 减 1 后是循环次数 add si,2 mov ax,[si] ; 取出第一个元素给 AX , AX 用于暂存最大值 mov bx,ax ; 取出第一个元素给 BX , BX 用于暂存最小值 maxck: add si,2 cmp [si],ax ; 与下一个数据比较 jle minck mov ax,[si] ;AX 取得更大的数据 jmp next minck: cmp [si],bx jge next mov bx,[si] ;BX 取得更小的数据 next: loop maxck ; 计数循环 mov maxay,ax ; 保存最大值 mov minay,bx ; 保存最小值 这里调用3.18子程序输出最大值 这里调用3.18子程序输出最小值 mov ax,4c00h int 21h 这里放参考3.18修改后的输出一个有符合十进制数的子程序 end start 将屏幕上输出的最大值和最小值结果截图上传(注意数据段需要做修改)