我需要在8086汇编中使用循环来汇总数字1,2,3,4,5,6,7,8,9,10
。在这里我的尝试:
MOV AX,01h
MOV CX,0ah
LABEL1:
inc AX
LOOP LABEL1
HLT
答案 0 :(得分:2)
您需要某种容器来存储您的金额。您可以选择注册add
。
首先确保在开始循环之前清空此寄存器
然后在循环的每次迭代中,AX
DX
的当前值到此寄存器 mov ax, 1
mov cx, 10
xor dx, dx ;This puts zero in DX
Label1:
add dx, ax ;This adds int turn 1, 2, 3, ... ,10 to DX
inc ax
loop Label1
。
loop
不确定您是否 要使用AX
指令,但替代循环使用 mov ax, 1
cwd ;This puts zero in DX because AX holds a positive number
Label1:
add dx, ax ;This adds in turn 1, 2, 3, ... ,10 to DX
inc ax
cmp ax, 10
jbe Label1
进行循环控制。
cmp
更好的循环将数字从高到低添加。这样就不再需要 mov ax, 10
cwd ;This puts zero in DX because AX holds a positive number
Label1:
add dx, ax ;This adds in turn 10, 9, 8, ... ,1 to DX
dec ax
jnz Label1
指令了。
strtok()