EASy68K http://www.easy68k.com/EASy68Kforum/ |
|
Decomposing a word http://www.easy68k.com/EASy68Kforum/viewtopic.php?f=6&t=1069 |
Page 1 of 1 |
Author: | assemlbey_dude [ Fri Dec 16, 2011 8:00 pm ] |
Post subject: | Decomposing a word |
Hello everyone. What would be the easiest way to "decompose" a word. For example $85F2 into $08050F02. I am new to the EASY68k simulator and assembler. I understand how to use ROL, ROR, LSL,LSR. I also understand the concept of masking bits. |
Author: | clive [ Sat Dec 17, 2011 5:01 am ] |
Post subject: | |
I'd just shuffle them around, which is reasonably efficient Code: MOVE.W #$85F2,D0
CLR.W D1 SWAP D1 MOVE.W D0,D1 LSL.L #4,D1 LSR.W #4,D1 LSL.L #8,D1 LSR.W #4,D1 LSR.B #4,D1 |
Author: | lee [ Sat Dec 17, 2011 11:27 am ] |
Post subject: | |
You could replace both the CLR and the SWAP with a MOVEQ #0,d1 Lee. |
Author: | assemlbey_dude [ Tue Jan 03, 2012 1:43 pm ] |
Post subject: | |
clive wrote: I'd just shuffle them around, which is reasonably efficient Code: MOVE.W #$85F2,D0 CLR.W D1 SWAP D1 MOVE.W D0,D1 LSL.L #4,D1 LSR.W #4,D1 LSL.L #8,D1 LSR.W #4,D1 LSR.B #4,D1 Thank you, very elegant solution. I appreciate it! |
Author: | assemlbey_dude [ Tue Jan 03, 2012 1:44 pm ] |
Post subject: | |
lee wrote: You could replace both the CLR and the SWAP with a MOVEQ #0,d1 Lee. Yes, I like this method better. Thank you. |
Author: | etw3 [ Thu Feb 23, 2012 1:11 am ] |
Post subject: | |
assemlbey_dude wrote: lee wrote: You could replace both the CLR and the SWAP with a MOVEQ #0,d1 Lee. there is no need for the swap just clr.l d1 |
Author: | clive [ Thu Feb 23, 2012 4:45 pm ] |
Post subject: | |
etw3 wrote: there is no need for the swap just clr.l d1 Which I guess was Lee's point, except that MOVEQ is 4 cycles, and CLR.L is 8 cycles. I basically demonstrated a way of doing it, which expressed the need to clear the high order word for the subsequent code to work, in retrospect I could have trimmed the coding some more, but had probably been thinking about doing it in a single register. Code: MOVE.W #$85F2,D0 AND.L #$FFFF,D0 LSL.L #4,D0 LSR.W #4,D0 LSL.L #8,D0 LSR.W #4,D0 LSR.B #4,D0 AND.W #$FFFF,D0 wouldn't work because it sign extends. |
Page 1 of 1 | All times are UTC |
Powered by phpBB® Forum Software © phpBB Group http://www.phpbb.com/ |