Documentos de Académico
Documentos de Profesional
Documentos de Cultura
Multiplicación de Longword Sin Signo en El M68k
Multiplicación de Longword Sin Signo en El M68k
moveq.l # 0, d2
moveq.l # 0, d3
moveq.l # 0, d4
moveq.l # 0, d5
moveq.l # 0, d6
* Calcula z0.
move.w d0, d2
mulu d1, d2 * D2 = z0
* Multiplicador.
move.w d1, d4
swap d1
move.w d1, d5
add.l d5, d4 * D4 = Multiplicador del primer término de z1.
* Restar z0.
sub.l d2, d3 * D3 = Primer y tercer término de z1.
if.l <cs> then.s
sub.l # 1, d6
Endi
* Compute z2.
moveq # 0, d4
move.w d0, d4
mulu d1, d4 * D4 = z2.
* Completa z1.
sub.l d4, d3 * D3 = z1.
moveq # 0, d0
moveq # 0, d1
* Calcular resultado.
move.l d4, d0 * D0 = Alto.
move.l d2, d1 * D1 = Bajo.
move.w # 0, d3
add.l d3, d1
* Agregar D6 << 16 a D0. Se puede cambiar ya que una palabra más alta siempre
es 0.
swap d6
add.l d6, d0