Элементы суммы в векторной сборке - PullRequest
0 голосов
/ 27 мая 2018

Может кто-нибудь объяснить мне, почему следующая программа ничего не показывает на экране?Итак, я попытался вычислить сумму вектора следующим образом:

.model small
.stack 100h
.data
  vector db  1,2,3,4,5,6,7,8,9
  suma db 0
  count db 9
  msg db 10,13,"Sum is:$"

.code
  mov ax,@data
  mov ds,ax

  mov si,0
  xor si,si
  xor cx,cx
  mov cl,count
repeta:
  mov al,vector[si]
  add suma,al
  inc si
loop repeta

  mov bx,ax
  mov ah,09
  lea dx,msg
  int 21h
  mov ah,2
  mov dl,bl
  int 21h
  mov ah,2
  mov dl,bl
  int 21h

  mov ah,4ch
  int 21h    
end

1 Ответ

0 голосов
/ 27 мая 2018
mov bx,ax

Нет ничего значащего в AX на данный момент в программе.Значение, которое вы ищете, находится в переменной suma .

Следующий код покажет результаты, если сумма останется ниже 100.

mov ah, 09h
lea dx, msg
int 21h

mov al, suma     ;Result happens to be 55
aam              ;Tens go to AH, units go to AL
or  ax, "00"     ;Make ASCII characters
mov bx, ax       ;Move to safe place

mov ah, 02h
mov dl, BH       ;Display tens
int 21h
mov ah, 02h
mov dl, BL       ;Display units
int 21h

mov ah, 00h
int 16h          ;Wait for a key
...