Find the missing permutation: Difference between revisions
Content added Content deleted
Not a robot (talk | contribs) (Add 8080 assembly) |
|||
Line 112: | Line 112: | ||
{{out}} |
{{out}} |
||
<pre>DBAC is missing</pre> |
<pre>DBAC is missing</pre> |
||
=={{header|8080 Assembly}}== |
|||
<lang asm>PRMLEN: equ 4 ; length of permutation string |
|||
puts: equ 9 ; CP/M print string |
|||
org 100h |
|||
lxi d,perms ; Start with first permutation |
|||
perm: lxi h,mperm ; Missing permutation |
|||
mvi b,PRMLEN ; Length of permutation |
|||
char: ldax d ; Load character |
|||
ora a ; Done? |
|||
jz done |
|||
xra m ; If not, XOR into missing permutation |
|||
mov m,a |
|||
inx h ; Increment pointers |
|||
inx d |
|||
dcr b ; Next character of current permutation |
|||
jnz char |
|||
jmp perm ; Next permutation |
|||
done: lxi d,msg ; Print the message and exit |
|||
mvi c,puts |
|||
jmp 5 |
|||
msg: db 'Missing permutation: ' |
|||
mperm: db 0,0,0,0,'$' ; placeholder |
|||
perms: db 'ABCD','CABD','ACDB','DACB','BCDA','ACBD','ADCB','CDAB' |
|||
db 'DABC','BCAD','CADB','CDBA','CBAD','ABDC','ADBC','BDCA' |
|||
db 'DCBA','BACD','BADC','BDAC','CBDA','DBCA','DCAB' |
|||
db 0 ; end marker </lang> |
|||
{{out}} |
|||
<pre>Missing permutation: DBAC</pre> |
|||
=={{header|Action!}}== |
=={{header|Action!}}== |