我想用汇编语言emu8086制作钟形三角形 like this
我在这一行有问题
mov ch,a[DI-(1+d)]
d = 1;变量增量 我试图删除(1 + d)并将其设为2就像这样
mov ch,a[DI-2]
它给了我想要的结果,但我想使用变量(d)导致它每次都改变
那就是问题所在
J2:
cmp DI,bx
JE J1
mov al, a[DI]
mov ch,a[DI-(1+d)] //in this line//
add al,ch
inc di
mov a[DI],al
print ' '
call print_num
mov dl,c
mov b,dx
jmp J2
即输出
1
1 2
2 2 2
2 2 2 2
但它应该是这样的
1
1 2
2 3 5
5 7 10 15
我认为问题是括号
答案 0 :(得分:1)
处理器寄存器中只能有不同的地址组件。
mov ch,a[DI-(1+d)]
假设 d 是字大小的变量,我建议你编码:
push bx ;Save because you use it elsewhere!
mov bx,d
neg bx
mov ch,a[DI-1+BX]
pop bx