不使用乘法指令,将数据段中10H单元中的单字节无符号数乘10,结果存于12H单元(设结果小于256)写 汇编语言程序
时间: 2024-02-12 11:05:07 浏览: 28
以下是一种可能的汇编语言程序实现:
```assembly
MOV AL, [10H] ; 将10H单元中的数值加载到AL寄存器中
ADD AL, AL ; AL寄存器乘2,相当于左移一位,即原数乘以2
ADD AL, AL ; 再次将AL寄存器乘2,相当于左移一位,即原数乘以4
ADD AL, AL ; 再次将AL寄存器乘2,相当于左移一位,即原数乘以8
ADD AL, [10H] ; 将AL寄存器加上原数,相当于原数乘以9
ADD AL, AL ; 再次将AL寄存器乘2,相当于左移一位,即原数乘以18
ADD AL, [10H] ; 将AL寄存器加上原数,相当于原数乘以19
ADD AL, AL ; 再次将AL寄存器乘2,相当于左移一位,即原数乘以38
ADD AL, AL ; 再次将AL寄存器乘2,相当于左移一位,即原数乘以76
MOV [12H], AL ; 将结果保存到12H单元中
```
该程序先将10H单元中的数值加载到AL寄存器中,然后依次将AL寄存器左移一位,即原数乘以2,乘以4,乘以8,分别得到原数的2倍、4倍、8倍。接着将原数加上乘以9得到原数的9倍,再将结果左移一位,即原数乘以18,再将原数加上乘以19得到原数的19倍,再将结果左移一位,即原数乘以38,最后再将结果左移一位,即原数乘以76,将结果保存到12H单元中。