Luhn test of credit card numbers: Difference between revisions

Add MACRO-11
No edit summary
(Add MACRO-11)
Line 4,032:
1234567812345678 = False
1234567812345670 = True</pre>
 
=={{header|MACRO-11}}==
<syntaxhighlight lang="macro11"> .TITLE LUHN
.MCALL .GTLIN,.PRINT,.EXIT
LUHN:: .GTLIN #5$
MOV #5$,R0
TSTB (R0)
BEQ 2$
JSR PC,TEST
BNE 1$
.PRINT #3$
BR LUHN
1$: .PRINT #4$
BR LUHN
2$: .EXIT
3$: .ASCIZ /PASS/
4$: .ASCIZ /FAIL/
5$: .BLKB 200
.EVEN
TEST: MOV R0,R1
CLR R2
1$: TSTB (R0)+
BNE 1$
DEC R0
2$: MOVB -(R0),R3
SUB #60,R3
ADD R3,R2
CMP R0,R1
BLOS 3$
MOVB -(R0),R3
SUB #60,R3
MOVB 4$(R3),R3
ADD R3,R2
CMP R0,R1
BHI 2$
3$: SUB #12,R2
BHI 3$
RTS PC
4$: .BYTE ^D0,^D2,^D4,^D6,^D8
.BYTE ^D1,^D3,^D5,^D7,^D9
.END LUHN</syntaxhighlight>
{{out}}
<pre>.LUHN 49927398716
PASS
 
.LUHN 49927398717
FAIL
 
.LUHN 1234567812345678
FAIL
 
.LUHN 1234567812345670
PASS</pre>
 
=={{header|Mathematica}}/{{header|Wolfram Language}}==
2,094

edits