8085 multiplication.How 有用吗?
8085 multiplication.How does it work?
我有这个程序,但我不明白。
为什么使用 ral
和 dad
?
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
代码将[4050h]和[4051h]的字节相乘,并将16位结果存入[4052h]。 de = [4050h] 处的字节(d = 0,e = 字节),a = [4051h] 处的字节。 ral 将 a 左移 1 位,将 a 的最高有效位移入进位。爸爸 d 将 de 添加到 hl。 dad h 将 hl 左移 1 位。 shld 将 16 位产品存储到 [4052h].
我有这个程序,但我不明白。
为什么使用 ral
和 dad
?
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
代码将[4050h]和[4051h]的字节相乘,并将16位结果存入[4052h]。 de = [4050h] 处的字节(d = 0,e = 字节),a = [4051h] 处的字节。 ral 将 a 左移 1 位,将 a 的最高有效位移入进位。爸爸 d 将 de 添加到 hl。 dad h 将 hl 左移 1 位。 shld 将 16 位产品存储到 [4052h].