我就只写这题的核心代码嘛:
cld ; 这里让df清0.
mov ax,100h
lea si,[ax] ; 这里设置源操作数偏移地址为100h
mov dx,0; dx用来装入各加数之和,先装初始值0.
mov cx,10; cx存循环次数10,可以变成你数据段定义的变量.
L1:
lodsb
add,dx,ax
loop L1; L1这个标号里内面的内容就实现10次加法运算。
mov ax,dx; 最后把dx里面存放的和放到题目中要求的ax中去。
data segment
count equ 10
buf db 2,-3,5,8,-9,10,40,-90,4,89
max db ?
min db ?
data ends
code segment
assume cs:code,ds:data
start:
mov ax,data
mov ds,ax
mov si,0
mov cx,count
dec cx
mov al,buf[si]
mov max,al
mov min,al
next:
inc si
mov al,buf[si]
cmp al,max
jng bdy
mov max,al
jnz next1
bdy:
cmp al,min
jnl next1
mov min,al
next1:
loop next
mov ah,4ch
int 21h
code ends
end start