EASy68K Assembly - first program errors -


i'm new assembly language, i'm having little trouble first program. supposed recreate following code, except in assembly language obviously. can me fix errors , me program work properly? think close.

original non-assembly code:

q = 7; p = 15;  // test on p = 14 , p = 6 if (p > 12)   p = 8 * p + 4;   // requirement: use asl multiplied 8 else   p = p - q; print p; 

here have far, i'm getting errors. i'll post errors @ bottom.

start   org     $1000   //program starts @ loc $1000 if      cmp     #12,p   //is p > 12?         ble     endif   //if p < 12, go endif         asl     #3,p    //shift left 3 times (multiply p * 8)         add     #4,p    //p + 4  endif   sub     q,p     //p - q  * data section     org $2000    //data starts @ loc 2000 p   dc.w    15  //int p = 15; q   dc.w    7   //int q = 7;     end start 

line 4: error: invalid addressing mode line 7: error: invalid addressing mode

i recommend keep m68000 programmer's reference manual around correct way of using instructions.

asl has no #<data>,<ea> form. does have <ea> form, can asl p 3 times. or can move p register, shift 3 bits left, , put result in p.

likewise, there's no <ea>,<ea> form of sub. 1 solution move q d-register, , subtract register p.


Comments

Popular posts from this blog

java.util.scanner - How to read and add only numbers to array from a text file -

rewrite - Trouble with Wordpress multiple custom querystrings -