Go4Expert

Go4Expert (http://www.go4expert.com/)
-   Assembly Language Programming (ALP) Forum (http://www.go4expert.com/forums/assembly-language-programming-forum/)
-   -   SDK6800 Assembly Program Help (http://www.go4expert.com/forums/sdk6800-assembly-program-help-t10873/)

ashley125 28May2008 17:45

SDK6800 Assembly Program Help
 
Hi,

I've got a question about using the 6800 emulator to create a program that multiplies 2 arbitary 8 bit numbers to generate an 8 bit number. now, i've attempted it, this is what i've done in the quote below.

Quote:

eleven .equ 11
fourteen .equ 14
P .equ 0

ldab #4

loop cba
ldaa #eleven
tst 0,x
jmp PnB
PnB ldaa #fourteen
adaa #P
jmp plus
plus asla
staa P
jmp shiftP
shiftP ldaa #P
asla
decb
tstb
bne loop
.org $0120
Okay, the teacher went through it in class, and he showed how it was shifting each step, eg:

C P A
0 0000 1011
N=1 0 1110 1011 (LSB = 1, so P+B=P)
0111 0101 (Shift Bits Right)
N=2 1 0101 0101 (LSB = 1, so P+B=P)
0 1010 1010 (Shift Bits Right)

So at first i couldn't do it, but i attempted it and i did that in the quote up the top. I don't think it's correct though cause when i look at it, it just doesn't look right. I was wondering if anyone could give me some pointers on what im doing wrong so I at least know how to fix it.

Thanks,

Ashley

ashley125 28May2008 17:56

Re: SDK6800 Assembly Program Help
 
right it didn't list the codes very well, i'll list them again:

Code:

eleven        .equ        11
fourteen        .equ        14
P        .equ        0

        ldab        #4

loop        cba
        ldaa        #eleven
        tst        0,x
        jmp        PnB
PnB        ldaa        #fourteen
        adda        #P
        jmp        plus
plus        asla
        staa        P
        jmp        shiftP
shiftP        ldaa        #P
        asla
        decb
        tstb
        bne loop
        .org $0120

        .end

and the other code

Code:

        C        P        A
        0        0000        1011
N=1        0        1110        1011        (LSB = 1, so P+B=P)
                0111        0101        (Shift Bits Right)
N=2        1        0101        0101        (LSB = 1, so P+B=P)
        0        1010        1010        (Shift Bits Right)


Kapadia1001 5May2010 15:11

Re: SDK6800 Assembly Program Help
 
Hi,

I've got a question about using the 6800 emulator to create a program which counts the number of factors of an input variable. The input is stored at the end of the program in the variable n. The output should be stored in a variable called numFactors. Now, i've attempted it, this is what i've done in the quote below.

ldaa n
ldab x
startloop suba numFactors
tsta
dec x
bmi stop
bra startloop
n .byte 15
x .byte 1
numFactors .byte 1
stop .end


All times are GMT +5.5. The time now is 08:05.