Конечно, правда я уже забыл откуда сам списал.
Код:
; hl = h * l
mul8x8:
mov A,h ; Multiplier (-1) to A Register
mov e,l ; Multiplicand (127) to D,E Registers
MVI d,000h
LXI H,000h ; Clear H,L Registers to initialize Partial Product
MVI B,008h ; Iteration Count (8) to B Register
m88LOOP: DAD H ; Shift Partial Product left into Carry (H&L)
RAL ; Rotate Multiplier Bit to Carry
JNC m88NEXT ; Test Multiplier at Carry
DAD D ; Add Multiplicand to Partial Product (D&E)
; if Carry =1
ACI 000h ; (Add Carry Bit)
m88NEXT: DCR B ; Decrement Iteration Counter
JNZ m88LOOP ; Check Iterations
ret
Но вот правда же, была где-то страничка с хорошим сборником всевозможной арифметики для 8080.