Množenje

Primer: - množenje s seštevanjem -

Sestavimo program, ki s pomočjo registra D zmnoži dve dvobajtni števili ($0104 in $0004. Obe naj se nahajata na naslovu $3000 in naprej! Dobljeni rezultat shrani na naslovu $3004. Program naj se nahaja v pomnilniku na naslovu $8000. Preizkusi, ali dobiš enak rezultat, če števili zamenjaš med seboj!

Za preverjanje programa lahko uporabimo tudi različna števila.


R E Š I T V E


        org   $fffe
        fdb   start

        org   $3000
a       fdb   260
b       fdb   4
rez     rmb   2
        
        org   $8000
start   LDD   0
        LDX   b
pristej ADDD  a
        DEX
        BNE   pristej
        STD   rez
        end

* nastavimo reset vektor
* z začetnim naslovom programa

* nastavimo začetek podatkov
* prvo število (a)
* drugo število (b)
* prostor za rezultat (rez)

* nastavimo začetek programa
* sprazni register D
* drugo število naloži v X
* izvaja množenje s prištevanjem
* a tolikokrat, kot je b
* če je prištel b krat, konča zankanje
* in shrani rezultat!


Program poženimo večkrat. Po vsakem zagonu nastavimo nove vrednosti oziroma jih med seboj zamenjamo in opazujemo tok programa!

K O N E C     R E Š I T E V


Naloge za reševanje in utrjevanje:

1. naloga: Sestavi program, ki zmnoži dve števili dolžine en bajt, ki ju vpišeš na naslova $4000 in $4001, rezultat pa shrani na naslov $4002. Nalogo reši z uporabo akumulatorjev A in B prvič po zgornji metodi, drugič pa z uporabo ukaza MUL. Program naj se nahaja v pomnilniku na naslovu $6000. Kako je z rezultati in njihovo dolžino?