问题–编写一个程序将ASCII转换为BCD 8位数字,起始地址为2000 ,该数字存储在2050存储器地址中,并将结果存储到3050存储器地址中。
Example-
Input : location: 2050
Data : 37
Output : location: 3050
Data : 07
算法 –
- 将[2050]处的值移到AL中
- 用0F在AL上执行AND操作
- 将累加器AL的内容移至3050
- 停止
程序 –
Memory | Mnemonics | Operands | Comment |
---|---|---|---|
2000 | MOV | AL, [2050] | [AL] <- [2050] |
2004 | AND | AL, 0F | [AL] <- ([ AL] AND 0F ) |
2006 | MOV | [3050], AL | [3050] <- [AL] |
200A | HLT | Stop |
说明–寄存器AL用于一般用途
- MOV用于传输数据
- AND用于乘法(逻辑上)
- HLT用于暂停程序