我如何打印段si的值

时间:2018-05-25 16:34:02

标签: assembly dos x86-16

我创建这个程序来查看数组中的最大和最小数字,我想打印这些的位置,我怎么能这样做?例如,如果我输入输入1234567895,我想输出max = 9 position = 8,min = 1 position = 0。目前max和min有效,但我不知道如何打印输出位置的索引

   dosseg
  .model small
  .stack 100h
  .data
  vettore db 10 dup(0)
  msg1 db 'insert 10 numbers',10,13,"$"
  msg2 db ' Min:',"$"
  msg3 db 'Max:',"$"
  .code
  start:
  mov ax,@data
  mov ds,ax
  lea dx,msg1
  mov ah,9
  int 21h
  mov di,0

  inserimento:
  mov ah,1
  int 21h
  mov vettore[di],al
  add di,1
  cmp di,10
  jl inserimento
mov di,0
mov si,0
mov bl,'9'
jmp testz

b:
mov bl,vettore[di]
cmp di,10
jge finee
jmp testzzz

a: 
mov cl,vettore[di]
cmp di,10
jge finee
jmp testzz

testz:
cmp vettore[di],cl
jge a

testzz: 
cmp vettore[di],bl
jl b

testzzz:
inc di
inc si
cmp di,9
jle testz

finee:
lea dx,msg3
mov ah,9
int 21h
mov ah,2
mov dl,cl
int 21h

lea dx,msg2
mov ah,9
int 21h
mov ah,2
mov dl,bl
int 21h

fine:
mov ah,4ch
int 21h
end start

0 个答案:

没有答案