在汇编中使用循环求和数字 1,2,3,4,5,6,7,8,9,10
SUM numbers 1,2,3,4,5,6,7,8,9,10 by using loop in assembly
我需要在 8086 汇编中使用循环对数字 1,2,3,4,5,6,7,8,9,10
求和。这是我的尝试:
MOV AX,01h
MOV CX,0ah
LABEL1:
inc AX
LOOP LABEL1
HLT
您需要一个 容器 来存储您的金额。您可以为此选择寄存器 DX
。
首先确保在开始循环之前清空此寄存器。
然后在循环的每次迭代中,你 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
我需要在 8086 汇编中使用循环对数字 1,2,3,4,5,6,7,8,9,10
求和。这是我的尝试:
MOV AX,01h
MOV CX,0ah
LABEL1:
inc AX
LOOP LABEL1
HLT
您需要一个 容器 来存储您的金额。您可以为此选择寄存器 DX
。
首先确保在开始循环之前清空此寄存器。
然后在循环的每次迭代中,你 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