Assembly 8085乘法。它是如何工作的?

Assembly 8085乘法。它是如何工作的?,assembly,8085,x86-16,Assembly,8085,X86 16,我有这个程序,但我不明白。 为什么要用拉尔和爸爸 代码将[4050h]和[4051h]处的字节相乘,并将16位结果存储到[4052h]中。de=位于[4050h]的字节d=0,e=字节,a=位于[4051h]的字节。ral左移1位,将a的最高有效位移到进位。爸爸d给hl加上了de。爸爸h向左移动1位。shld将16位乘积存储到[4052h]中。移位乘法器如何帮助乘法?我没有掌握移位和乘法的基本知识。@Kirsche-将乘法器左移到进位是为了测试乘法器的位,从最高有效位到最低有效位,一次一个。如果

我有这个程序,但我不明白。 为什么要用拉尔和爸爸


代码将[4050h]和[4051h]处的字节相乘,并将16位结果存储到[4052h]中。de=位于[4050h]的字节d=0,e=字节,a=位于[4051h]的字节。ral左移1位,将a的最高有效位移到进位。爸爸d给hl加上了de。爸爸h向左移动1位。shld将16位乘积存储到[4052h]中。

移位乘法器如何帮助乘法?我没有掌握移位和乘法的基本知识。@Kirsche-将乘法器左移到进位是为了测试乘法器的位,从最高有效位到最低有效位,一次一个。如果设置了位,则被乘数将添加到乘积中。在每一步之后,产品左移一位。
 1.  lxi h, 4050h 
 2.  mov e,m 
 3.  mvi d,00h 
 4.  inx h
 5.  mov a,m
 6.  mvi b,08h
 7.  lxi h,0000h 
 8.  mvlt: ral ; this line 
 9.  jnc add1 
 10. dad d 
 11. add1: dcr b ; this line
 12. jz store 
 13. dad h 
 14. jmp mvlt 
 15. store: shld 4052h ; this line
 16. rst 1