通过在汇编中使用循环来对SUM编号1,2,3,4,5,6,7,8,9,10进行编号

时间:2018-03-11 14:53:41

标签: loops assembly x86-16 emu8086

我需要在8086汇编中使用循环来汇总数字1,2,3,4,5,6,7,8,9,10。在这里我的尝试:

    MOV AX,01h
    MOV CX,0ah
LABEL1:
    inc AX
    LOOP LABEL1
    HLT  

1 个答案:

答案 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()