0

我有这个程序,但我不明白。为什么raldad使用?

 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
4

1 回答 1

0

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

于 2015-03-06T15:11:32.530 回答