Programación en lenguaje ensamblador: hay 30 números almacenados en la unidad a partir de MARK. La programación extrae las puntuaciones más altas y más bajas, las envía a las unidades ALTA y BAJA respectivamente y las muestra.
segmento de datos
marca db 30 dup (0)
alta db 0
lo db 0
extremos de datos
segmento de pila pila
db 20 dup (0)
finales de pila
segmento de código
supongamos cs:code,ss:stack
start:
mov ax,data
mov ds,ax
lea bx,mark
mov ah,[bx]
mov al,[bx]
mov si,1
matón:
cmp si,30
jnb over1
cmp ah,[bx+si]
jnb over2
mov ah, [bx+si]
over2:
cmp al,[bx+si]
jna over3
mov al,[bx +si]
over3:
inc si
jmp goon
over1:
mov hig,ah
mov lo,al; saca los números máximo y mínimo y envíalos a hig y lo
mov ah,0
llama a mostrar el mínimo; número
mov dl,' '
mov ah,2
int 21h espacio
mov al,hig
mov ah, 0
llamar htod; mostrar el número máximo
mov ax,4c00h
int 21h
htod: ; subrutina: muestra en decimal Valor de AL
push bx
push cx
push dx
mov cl,0
goon2:
mov dx,0
mov bx,10
div bx
añadir dl,30h p>
push dx
inc cl
cmp ax,10
jna over4
jmp goon2
over4: p>
añadir al,30h
empujar hacha
inc cl
goon3:
cmp cl,0
je over5
pop dx
mov ah,2
int 21h
dec cl
jmp goon3
over5:
pop dx
pop cx
pop bx
ret
el código termina
finaliza el inicio