问题–编写一个程序,将存储位置2000:0500的内容与存储位置3000:0600的内容相加,并将结果存储到5000:0700存储位置。
例子 –
算法 –
- 将2000移至CX寄存器
- 将CX移到DS段(现在我们在2000数据段中)
- 将500的值移入AX寄存器
- 将3000移至CX寄存器
- 将CX移到DS段(现在我们在3000个数据段中)
- 将AX(累加器)的值与存储器600的值相加
- 将5000移入CX寄存器
- 将CX移至ES细分市场(现在我们在5000的额外细分市场中)
- 将AX的内容移至700个存储位置
- 停止
程序 –
Memory | Mnemonics | Operands | Comment |
---|---|---|---|
1000 | MOV | CX, 2000 | [CX] <- 2000 |
1004 | MOV | DS, CX | [DS] <- [CX] |
1006 | MOV | AX, [500] | [AX] <- [500] |
100A | MOV | CX, 3000 | [CX] <- 3000 |
100E | MOV | DS, CX | [DS] <- [CX] |
1010 | ADD | AX, [600] | [AX] <- [AX] + [600] |
1014 | MOV | CX, 5000 | [CX] <- 5000 |
1018 | MOV | ES, CX | [ES] <- [CX] |
101A | MOV | [700], AX | [700] <- [AX] RESULT |
101E | HLT | Stop |
解释 –
注册用于一般用途的AX,CX。
细分受众群使用DS,ES来更改细分受众群。
MOV用于传输数据
ADD用于加法
HLT用于暂停程序