Как получить квадрат числа в сборке - PullRequest
0 голосов
/ 27 апреля 2020

Я пытаюсь получить квадрат числа между 0 и 9 , а затем я буду использовать это число для создания высоты из прямоугольника .

Я пытался использовать метод сумм Ex: 5*5 = 25 и 5+5+5+5+5 = 25

;Keyboard Input
mov ah, 3Fh
mov bx, 0
mov cx, 1
mov dx, num
int 21h

;Multiplication
sub [num], 48
mov al,[num]
mov bl,[num]
mult:
 add al, [num]
 dec bl
 jnz mult

Мне интересно, если это правильно, потому что когда я вставляю число 7 (7 * 7) = 49 , я думаю, что оно превышает значение 50 ( длина из прямоугольник );

enter image description here

И когда число 0 вставлено это странное поведение бывает:

enter image description here

Код для создания прямоугольника:

mov [height], al
mov cx, [pos_x]
mov dx, [pos_y]

loop_y:

 loop_x:
  mov ah, 0ch
  mov al, [cor]
  mov bh, 0
  int 10h
  inc cx
  dec [length]
  jnz loop_x

 inc [pos_y]
 mov dx, [pos_y]
 mov cx, [pos_x]
 mov [length], 50
 dec [height]
 jnz loop_y 

Все должно быть FASM совместимо.

...