【发布时间】:2020-04-27 17:47:03
【问题描述】:
我试图得到 0 和 9 之间的数字的平方,然后我将使用该 数字 来创建 矩形的strong>高度。
我尝试的是使用 sum 方法 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 的值strong>(矩形的长度);
当插入数字 0 时,会发生这种奇怪的行为:
创建矩形的代码:
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兼容。
【问题讨论】:
-
是否允许使用 x87 浮点单元?
-
另外,您确定要 平方根 而不是 平方吗? 要将数字平方(即与自身相乘),请使用
mul或imul指令。有关详细信息,请参阅指令集参考。 -
我想要平方,是的,不是平方根。
-
然后阅读
mul和imul说明。 -
我能用 mul 做到这一点,谢谢。