Skip to content

Instantly share code, notes, and snippets.

@edmccard
Last active August 29, 2015 14:21
Show Gist options
  • Save edmccard/94c7b36a31353dd2fefa to your computer and use it in GitHub Desktop.
Save edmccard/94c7b36a31353dd2fefa to your computer and use it in GitHub Desktop.
; SIMTEST.ASM
;
; If execution reaches pc = 0x54, all is well
; If execution reaches 0x50, SREG was incorrect
; If execution reaches 0x52, result (in r16) was incorrect
; NOTE: pc is byte address (like gcc-avr uses)
; On failure, r19 holds the number of the first failed test
; set SP to 0x00ff
ldi r16, 0xff
out 0x3d, r16
ldi r16, 0x00
out 0x3e, r16
rjmp testcases
test: in r18, 0x3f
cp r18, r20
brne badstatus
cp r16, r21
brne badresult
ldi r18, 0x00
out 0x3f, r18
ret
testcp: in r18, 0x3f
cp r18, r20
brne badstatus
ldi r18, 0x00
out 0x3f, r18
ret
testmul: in r18, 0x3f
cp r18, r20
brne badstatus
cp r0, r21
brne badresult
cp r1, r22
brne badresult
clr r0
clr r1
ldi r18, 0x00
out 0x3f, r18
ret
testword: in r18, 0x3f
cp r18, r20
brne badstatus
cp r24, r21
cp r25, r22
brne badresult
ldi r18, 0x00
out 0x3f, r18
ret
badstatus: rjmp badstatus
badresult: rjmp badresult
success: rjmp success
testcases:
; add without carry status 0
ldi r19, 1 ; test number
ldi r16, 0x01 ; d
ldi r17, 0x01 ; r
add r16, r17
ldi r20, 0x00 ; expected SREG
ldi r21, 0x02 ; expected result in r16
rcall test
; add without carry status 1
ldi r19, 2
ldi r16, 0x10
ldi r17, 0xf1
add r16, r17
ldi r20, 0x01
ldi r21, 0x01
rcall test
; add without carry status 2
ldi r19, 3
ldi r16, 0x00
ldi r17, 0x00
add r16, r17
ldi r20, 0x02
ldi r21, 0x00
rcall test
; add without carry status 3
ldi r19, 4
ldi r16, 0x10
ldi r17, 0xf0
add r16, r17
ldi r20, 0x03
ldi r21, 0x00
rcall test
; add without carry status c
ldi r19, 5
ldi r16, 0x40
ldi r17, 0x40
add r16, r17
ldi r20, 0x0c
ldi r21, 0x80
rcall test
; add without carry status 14
ldi r19, 6
ldi r16, 0x00
ldi r17, 0x80
add r16, r17
ldi r20, 0x14
ldi r21, 0x80
rcall test
; add without carry status 15
ldi r19, 7
ldi r16, 0xc0
ldi r17, 0xc0
add r16, r17
ldi r20, 0x15
ldi r21, 0x80
rcall test
; add without carry status 19
ldi r19, 8
ldi r16, 0x81
ldi r17, 0x81
add r16, r17
ldi r20, 0x19
ldi r21, 0x02
rcall test
; add without carry status 1b
ldi r19, 9
ldi r16, 0x80
ldi r17, 0x80
add r16, r17
ldi r20, 0x1b
ldi r21, 0x00
rcall test
; add without carry status 20
ldi r19, 10
ldi r16, 0x08
ldi r17, 0x08
add r16, r17
ldi r20, 0x20
ldi r21, 0x10
rcall test
; add without carry status 21
ldi r19, 11
ldi r16, 0x02
ldi r17, 0xff
add r16, r17
ldi r20, 0x21
ldi r21, 0x01
rcall test
; add without carry status 23
ldi r19, 12
ldi r16, 0x01
ldi r17, 0xff
add r16, r17
ldi r20, 0x23
ldi r21, 0x00
rcall test
; add without carry status 2c
ldi r19, 13
ldi r16, 0x48
ldi r17, 0x48
add r16, r17
ldi r20, 0x2c
ldi r21, 0x90
rcall test
; add without carry status 34
ldi r19, 14
ldi r16, 0x01
ldi r17, 0x8f
add r16, r17
ldi r20, 0x34
ldi r21, 0x90
rcall test
; add without carry status 35
ldi r19, 15
ldi r16, 0xc8
ldi r17, 0xc8
add r16, r17
ldi r20, 0x35
ldi r21, 0x90
rcall test
; add without carry status 39
ldi r19, 16
ldi r16, 0x88
ldi r17, 0x88
add r16, r17
ldi r20, 0x39
ldi r21, 0x10
rcall test
; add with carry status 0
ldi r19, 17
sec
ldi r16, 0x00
ldi r17, 0x00
adc r16, r17
ldi r20, 0x00
ldi r21, 0x01
rcall test
; add with carry status 1
ldi r19, 18
sec
ldi r16, 0x10
ldi r17, 0xf0
adc r16, r17
ldi r20, 0x01
ldi r21, 0x01
rcall test
; add with carry status c
ldi r19, 19
sec
ldi r16, 0x40
ldi r17, 0x40
adc r16, r17
ldi r20, 0x0c
ldi r21, 0x81
rcall test
; add with carry status 14
ldi r19, 20
sec
ldi r16, 0x00
ldi r17, 0x80
adc r16, r17
ldi r20, 0x14
ldi r21, 0x81
rcall test
; add with carry status 15
ldi r19, 21
sec
ldi r16, 0xc0
ldi r17, 0xc0
adc r16, r17
ldi r20, 0x15
ldi r21, 0x81
rcall test
; add with carry status 19
ldi r19, 22
sec
ldi r16, 0x80
ldi r17, 0x80
adc r16, r17
ldi r20, 0x19
ldi r21, 0x01
rcall test
; add with carry status 20
ldi r19, 23
sec
ldi r16, 0x08
ldi r17, 0x08
adc r16, r17
ldi r20, 0x20
ldi r21, 0x11
rcall test
; add with carry status 21
ldi r19, 24
sec
ldi r16, 0x01
ldi r17, 0xff
adc r16, r17
ldi r20, 0x21
ldi r21, 0x01
rcall test
; add with carry status 23
ldi r19, 25
sec
ldi r16, 0x00
ldi r17, 0xff
adc r16, r17
ldi r20, 0x23
ldi r21, 0x00
rcall test
; add with carry status 2c
ldi r19, 26
sec
ldi r16, 0x48
ldi r17, 0x48
adc r16, r17
ldi r20, 0x2c
ldi r21, 0x91
rcall test
; add with carry status 34
ldi r19, 27
sec
ldi r16, 0x00
ldi r17, 0x8f
adc r16, r17
ldi r20, 0x34
ldi r21, 0x90
rcall test
; add with carry status 35
ldi r19, 28
sec
ldi r16, 0xc8
ldi r17, 0xc8
adc r16, r17
ldi r20, 0x35
ldi r21, 0x91
rcall test
; add with carry status 39
ldi r19, 29
sec
ldi r16, 0x88
ldi r17, 0x88
adc r16, r17
ldi r20, 0x39
ldi r21, 0x11
rcall test
clc
; sub without carry status 0
ldi r19, 30
ldi r16, 0x01
ldi r17, 0x00
sub r16, r17
ldi r20, 0x00
ldi r21, 0x01
rcall test
; cp without carry status 0
ldi r19, 31
ldi r16, 0x01
ldi r17, 0x00
cp r16, r17
ldi r20, 0x00
rcall testcp
; sub without carry status 1
ldi r19, 32
ldi r16, 0x00
ldi r17, 0x90
sub r16, r17
ldi r20, 0x01
ldi r21, 0x70
rcall test
; cp without carry status 1
ldi r19, 33
ldi r16, 0x00
ldi r17, 0x90
cp r16, r17
ldi r20, 0x01
rcall testcp
; sub without carry status 2
ldi r19, 34
ldi r16, 0x00
ldi r17, 0x00
sub r16, r17
ldi r20, 0x02
ldi r21, 0x00
rcall test
; cp without carry status 2
ldi r19, 35
ldi r16, 0x00
ldi r17, 0x00
cp r16, r17
ldi r20, 0x02
rcall testcp
; sub without carry status d
ldi r19, 36
ldi r16, 0x00
ldi r17, 0x80
sub r16, r17
ldi r20, 0x0d
ldi r21, 0x80
rcall test
; cp without carry status d
ldi r19, 37
ldi r16, 0x00
ldi r17, 0x80
cp r16, r17
ldi r20, 0x0d
rcall testcp
; sub without carry status 14
ldi r19, 38
ldi r16, 0x80
ldi r17, 0x00
sub r16, r17
ldi r20, 0x14
ldi r21, 0x80
rcall test
; cp without carry status 14
ldi r19, 39
ldi r16, 0x80
ldi r17, 0x00
cp r16, r17
ldi r20, 0x14
rcall testcp
; sub without carry status 15
ldi r19, 40
ldi r16, 0x00
ldi r17, 0x10
sub r16, r17
ldi r20, 0x15
ldi r21, 0xf0
rcall test
; cp without carry status 15
ldi r19, 41
ldi r16, 0x00
ldi r17, 0x10
cp r16, r17
ldi r20, 0x15
rcall testcp
; sub without carry status 18
ldi r19, 42
ldi r16, 0x80
ldi r17, 0x10
sub r16, r17
ldi r20, 0x18
ldi r21, 0x70
rcall test
; cp without carry status 18
ldi r19, 43
ldi r16, 0x80
ldi r17, 0x10
cp r16, r17
ldi r20, 0x18
rcall testcp
; sub without carry status 20
ldi r19, 44
ldi r16, 0x10
ldi r17, 0x01
sub r16, r17
ldi r20, 0x20
ldi r21, 0x0f
rcall test
; cp without carry status 20
ldi r19, 45
ldi r16, 0x10
ldi r17, 0x01
cp r16, r17
ldi r20, 0x20
rcall testcp
; sub without carry status 21
ldi r19, 46
ldi r16, 0x00
ldi r17, 0x81
sub r16, r17
ldi r20, 0x21
ldi r21, 0x7f
rcall test
; cp without carry status 21
ldi r19, 47
ldi r16, 0x00
ldi r17, 0x81
cp r16, r17
ldi r20, 0x21
rcall testcp
; sub without carry status 2d
ldi r19, 48
ldi r16, 0x10
ldi r17, 0x81
sub r16, r17
ldi r20, 0x2d
ldi r21, 0x8f
rcall test
; cp without carry status 2d
ldi r19, 49
ldi r16, 0x10
ldi r17, 0x81
cp r16, r17
ldi r20, 0x2d
rcall testcp
; sub without carry status 34
ldi r19, 50
ldi r16, 0x90
ldi r17, 0x01
sub r16, r17
ldi r20, 0x34
ldi r21, 0x8f
rcall test
; cp without carry status 34
ldi r19, 51
ldi r16, 0x90
ldi r17, 0x01
cp r16, r17
ldi r20, 0x34
rcall testcp
; sub without carry status 35
ldi r19, 52
ldi r16, 0x00
ldi r17, 0x01
sub r16, r17
ldi r20, 0x35
ldi r21, 0xff
rcall test
; cp without carry status 35
ldi r19, 53
ldi r16, 0x00
ldi r17, 0x01
cp r16, r17
ldi r20, 0x35
rcall testcp
; sub without carry status 38
ldi r19, 54
ldi r16, 0x80
ldi r17, 0x01
sub r16, r17
ldi r20, 0x38
ldi r21, 0x7f
rcall test
; cp without carry status 38
ldi r19, 55
ldi r16, 0x80
ldi r17, 0x01
cp r16, r17
ldi r20, 0x38
rcall testcp
; sbc with carry status 0
ldi r19, 56
sec
ldi r16, 0x02
ldi r17, 0x00
sbc r16, r17
ldi r20, 0x00
ldi r21, 0x01
rcall test
; cpc with carry status 0
ldi r19, 57
sec
ldi r16, 0x02
ldi r17, 0x00
cpc r16, r17
ldi r20, 0x00
rcall testcp
; sbc with carry status 1
ldi r19, 58
sec
ldi r16, 0x01
ldi r17, 0x90
sbc r16, r17
ldi r20, 0x01
ldi r21, 0x70
rcall test
; cpc with carry status 1
ldi r19, 59
sec
ldi r16, 0x01
ldi r17, 0x90
cpc r16, r17
ldi r20, 0x01
rcall testcp
; sbc with carry status d
ldi r19, 61
sec
ldi r16, 0x01
ldi r17, 0x80
sbc r16, r17
ldi r20, 0x0d
ldi r21, 0x80
rcall test
; cpc with carry status d
ldi r19, 62
sec
ldi r16, 0x01
ldi r17, 0x80
cpc r16, r17
ldi r20, 0x0d
rcall testcp
; sbc with carry status 14
ldi r19, 63
sec
ldi r16, 0x81
ldi r17, 0x00
sbc r16, r17
ldi r20, 0x14
ldi r21, 0x80
rcall test
; cpc with carry status 14
ldi r19, 64
sec
ldi r16, 0x81
ldi r17, 0x00
cpc r16, r17
ldi r20, 0x14
rcall testcp
; sbc with carry status 15
ldi r19, 65
sec
ldi r16, 0x01
ldi r17, 0x10
sbc r16, r17
ldi r20, 0x15
ldi r21, 0xf0
rcall test
; cpc with carry status 15
ldi r19, 66
sec
ldi r16, 0x01
ldi r17, 0x10
cpc r16, r17
ldi r20, 0x15
rcall testcp
; sbc with carry status 18
ldi r19, 67
sec
ldi r16, 0x81
ldi r17, 0x10
sbc r16, r17
ldi r20, 0x18
ldi r21, 0x70
rcall test
; cpc with carry status 18
ldi r19, 68
sec
ldi r16, 0x81
ldi r17, 0x10
cpc r16, r17
ldi r20, 0x18
rcall testcp
; sbc with carry status 20
ldi r19, 69
sec
ldi r16, 0x10
ldi r17, 0x00
sbc r16, r17
ldi r20, 0x20
ldi r21, 0x0f
rcall test
; cpc with carry status 20
ldi r19, 70
sec
ldi r16, 0x10
ldi r17, 0x00
cpc r16, r17
ldi r20, 0x20
rcall testcp
; sbc with carry status 21
ldi r19, 71
sec
ldi r16, 0x00
ldi r17, 0x80
sbc r16, r17
ldi r20, 0x21
ldi r21, 0x7f
rcall test
; cpc with carry status 21
ldi r19, 72
sec
ldi r16, 0x00
ldi r17, 0x80
cpc r16, r17
ldi r20, 0x21
rcall testcp
; sbc with carry status 20
ldi r19, 73
sec
ldi r16, 0x10
ldi r17, 0x0f
sbc r16, r17
ldi r20, 0x20
ldi r21, 0x00
rcall test
; cpc with carry status 20
ldi r19, 74
sec
ldi r16, 0x10
ldi r17, 0x0f
cpc r16, r17
ldi r20, 0x20
rcall testcp
; sbc with carry status 21
ldi r19, 75
sec
ldi r16, 0x00
ldi r17, 0xff
sbc r16, r17
ldi r20, 0x21
ldi r21, 0x00
rcall test
; cpc with carry status 21
ldi r19, 76
sec
ldi r16, 0x00
ldi r17, 0xff
cpc r16, r17
ldi r20, 0x21
rcall testcp
; sbc with carry status 2d
ldi r19, 77
sec
ldi r16, 0x10
ldi r17, 0x80
sbc r16, r17
ldi r20, 0x2d
ldi r21, 0x8f
rcall test
; cpc with carry status 2d
ldi r19, 78
sec
ldi r16, 0x10
ldi r17, 0x80
cpc r16, r17
ldi r20, 0x2d
rcall testcp
; sbc with carry status 34
ldi r19, 79
sec
ldi r16, 0x90
ldi r17, 0x00
sbc r16, r17
ldi r20, 0x34
ldi r21, 0x8f
rcall test
; cpc with carry status 34
ldi r19, 80
sec
ldi r16, 0x90
ldi r17, 0x00
cpc r16, r17
ldi r20, 0x34
rcall testcp
; sbc with carry status 35
ldi r19, 80
sec
ldi r16, 0x00
ldi r17, 0x00
sbc r16, r17
ldi r20, 0x35
ldi r21, 0xff
rcall test
; cpc with carry status 35
ldi r19, 81
sec
ldi r16, 0x00
ldi r17, 0x00
cpc r16, r17
ldi r20, 0x35
rcall testcp
; sbc with carry status 38
ldi r19, 82
sec
ldi r16, 0x80
ldi r17, 0x00
sbc r16, r17
ldi r20, 0x38
ldi r21, 0x7f
rcall test
; cpc with carry status 38
ldi r19, 83
sec
ldi r16, 0x80
ldi r17, 0x00
cpc r16, r17
ldi r20, 0x38
rcall testcp
; sbc with carry status 38
ldi r19, 84
sec
ldi r16, 0x80
ldi r17, 0x7f
sbc r16, r17
ldi r20, 0x38
ldi r21, 0x00
rcall test
; cpc with carry status 38
ldi r19, 85
sec
ldi r16, 0x80
ldi r17, 0x7f
cpc r16, r17
ldi r20, 0x38
rcall testcp
clc
; mul status 0
ldi r19, 86
ldi r16, 0xff
ldi r17, 0x01
mul r16, r17
ldi r20, 0x00
ldi r21, 0xff
ldi r22, 0x00
rcall testmul
; mul status 0
ldi r19, 87
ldi r16, 0x7f
ldi r17, 0x7f
mul r16, r17
ldi r20, 0x00
ldi r21, 0x01
ldi r22, 0x3f
rcall testmul
; mul status 1
ldi r19, 88
ldi r16, 0xff
ldi r17, 0xff
mul r16, r17
ldi r20, 0x01
ldi r21, 0x01
ldi r22, 0xfe
rcall testmul
; mul status 2
ldi r19, 89
ldi r16, 0xff
ldi r17, 0x00
mul r16, r17
ldi r20, 0x02
ldi r21, 0x00
ldi r22, 0x00
rcall testmul
; muls status 0
ldi r19, 90
ldi r16, 0xff
ldi r17, 0xff
muls r16, r17
ldi r20, 0x00
ldi r21, 0x01
ldi r22, 0x00
rcall testmul
; muls status 0
ldi r19, 91
ldi r16, 0x7f
ldi r17, 0x7f
muls r16, r17
ldi r20, 0x00
ldi r21, 0x01
ldi r22, 0x3f
rcall testmul
; muls status 1
ldi r19, 92
ldi r16, 0xff
ldi r17, 0x01
muls r16, r17
ldi r20, 0x01
ldi r21, 0xff
ldi r22, 0xff
rcall testmul
; muls status 2
ldi r19, 93
ldi r16, 0xff
ldi r17, 0x00
muls r16, r17
ldi r20, 0x02
ldi r21, 0x00
ldi r22, 0x00
rcall testmul
; mulsu status 0
ldi r19, 94
ldi r16, 0x01
ldi r17, 0xff
mulsu r16, r17
ldi r20, 0x00
ldi r21, 0xff
ldi r22, 0x00
rcall testmul
; mulsu status 0
ldi r19, 95
ldi r16, 0x7f
ldi r17, 0x7f
mulsu r16, r17
ldi r20, 0x00
ldi r21, 0x01
ldi r22, 0x3f
rcall testmul
; mulsu status 1
ldi r19, 96
ldi r16, 0xff
ldi r17, 0xff
mulsu r16, r17
ldi r20, 0x01
ldi r21, 0x01
ldi r22, 0xff
rcall testmul
; mulsu status 2
ldi r19, 97
ldi r16, 0xff
ldi r17, 0x00
mulsu r16, r17
ldi r20, 0x02
ldi r21, 0x00
ldi r22, 0x00
rcall testmul
; fmul status 0
ldi r19, 98
ldi r16, 0xff
ldi r17, 0x01
fmul r16, r17
ldi r20, 0x00
ldi r21, 0xfe
ldi r22, 0x01
rcall testmul
; fmul status 0
ldi r19, 99
ldi r16, 0x80
ldi r17, 0x80
fmul r16, r17
ldi r20, 0x00
ldi r21, 0x00
ldi r22, 0x80
rcall testmul
; fmul status 1
ldi r19, 100
ldi r16, 0xd0
ldi r17, 0xd0
fmul r16, r17
ldi r20, 0x01
ldi r21, 0x00
ldi r22, 0x52
rcall testmul
; fmul status 1
ldi r19, 101
ldi r16, 0xe0
ldi r17, 0xe0
fmul r16, r17
ldi r20, 0x01
ldi r21, 0x00
ldi r22, 0x88
rcall testmul
; fmul status 2
ldi r19, 102
ldi r16, 0xff
ldi r17, 0x00
fmul r16, r17
ldi r20, 0x02
ldi r21, 0x00
ldi r22, 0x00
rcall testmul
; fmuls status 0
ldi r19, 103
ldi r16, 0x7f
ldi r17, 0x7f
fmuls r16, r17
ldi r20, 0x00
ldi r21, 0x02
ldi r22, 0x7e
rcall testmul
; fmuls status 0
ldi r19, 104
ldi r16, 0x80
ldi r17, 0x80
fmuls r16, r17
ldi r20, 0x00
ldi r21, 0x00
ldi r22, 0x80
rcall testmul
; fmuls status 1
ldi r19, 105
ldi r16, 0xff
ldi r17, 0x01
fmuls r16, r17
ldi r20, 0x01
ldi r21, 0xfe
ldi r22, 0xff
rcall testmul
; fmuls status 2
ldi r19, 106
ldi r16, 0xff
ldi r17, 0x00
fmuls r16, r17
ldi r20, 0x02
ldi r21, 0x00
ldi r22, 0x00
rcall testmul
; fmulsu status 0
ldi r19, 107
ldi r16, 0x01
ldi r17, 0xff
fmulsu r16, r17
ldi r20, 0x00
ldi r21, 0xfe
ldi r22, 0x01
rcall testmul
; fmulsu status 0
ldi r19, 108
ldi r16, 0x7f
ldi r17, 0xc8
fmulsu r16, r17
ldi r20, 0x00
ldi r21, 0x70
ldi r22, 0xc6
rcall testmul
; fmulsu status 1
ldi r19, 109
ldi r16, 0xff
ldi r17, 0xff
fmulsu r16, r17
ldi r20, 0x01
ldi r21, 0x02
ldi r22, 0xfe
rcall testmul
; fmulsu status 1
ldi r19, 110
ldi r16, 0x9c
ldi r17, 0xaa
fmulsu r16, r17
ldi r20, 0x01
ldi r21, 0x30
ldi r22, 0x7b
rcall testmul
; fmulsu status 2
ldi r19, 111
ldi r16, 0xff
ldi r17, 0x00
fmulsu r16, r17
ldi r20, 0x02
ldi r21, 0x00
ldi r22, 0x00
rcall testmul
; asr status 0
ldi r19, 112
ldi r16, 0x02
asr r16
ldi r20, 0x00
ldi r21, 0x01
rcall test
; asr status 2
ldi r19, 113
ldi r16, 0x00
asr r16
ldi r20, 0x02
ldi r21, 0x00
rcall test
; asr status c
ldi r19, 114
ldi r16, 0x80
asr r16
ldi r20, 0x0c
ldi r21, 0xc0
rcall test
; asr status 15
ldi r19, 115
ldi r16, 0x81
asr r16
ldi r20, 0x15
ldi r21, 0xc0
rcall test
; asr status 19
ldi r19, 116
ldi r16, 0x03
asr r16
ldi r20, 0x19
ldi r21, 0x01
rcall test
; asr status 1b
ldi r19, 117
ldi r16, 0x01
asr r16
ldi r20, 0x1b
ldi r21, 0x00
rcall test
; lsr status 0
ldi r19, 118
ldi r16, 0x02
lsr r16
ldi r20, 0x00
ldi r21, 0x01
rcall test
; lsr status 2
ldi r19, 119
ldi r16, 0x00
asr r16
ldi r20, 0x02
ldi r21, 0x00
rcall test
; lsr status 19
ldi r19, 120
ldi r16, 0x03
asr r16
ldi r20, 0x19
ldi r21, 0x01
rcall test
; lsr status 1b
ldi r19, 121
ldi r16, 0x01
asr r16
ldi r20, 0x1b
ldi r21, 0x00
rcall test
; ror without carry status 0
ldi r19, 122
ldi r16, 0x02
ror r16
ldi r20, 0x00
ldi r21, 0x01
rcall test
; ror without carry status 2
ldi r19, 123
ldi r16, 0x00
ror r16
ldi r20, 0x02
ldi r21, 0x00
rcall test
; ror without carry status 19
ldi r19, 124
ldi r16, 0x03
ror r16
ldi r20, 0x19
ldi r21, 0x01
rcall test
; ror without carry status 1b
ldi r19, 125
ldi r16, 0x01
ror r16
ldi r20, 0x1b
ldi r21, 0x00
rcall test
; ror with carry status c
ldi r19, 126
sec
ldi r16, 0x0
ror r16
ldi r20, 0x0c
ldi r21, 0x80
rcall test
; ror with carry status 15
ldi r19, 127
sec
ldi r16, 0x01
ror r16
ldi r20, 0x15
ldi r21, 0x80
rcall test
; com status 1
ldi r19, 128
ldi r16, 0x80
com r16
ldi r20, 0x01
ldi r21, 0x7f
rcall test
; com status 3
ldi r19, 129
ldi r16, 0xff
com r16
ldi r20, 0x03
ldi r21, 0x00
rcall test
; com status 15
ldi r19, 130
ldi r16, 0x00
com r16
ldi r20, 0x15
ldi r21, 0xff
rcall test
; neg status 1
ldi r19, 131
ldi r16, 0x90
neg r16
ldi r20, 0x01
ldi r21, 0x70
rcall test
; neg status 2
ldi r19, 132
ldi r16, 0x00
neg r16
ldi r20, 0x02
ldi r21, 0x00
rcall test
; neg status d
ldi r19, 133
ldi r16, 0x80
neg r16
ldi r20, 0x0d
ldi r21, 0x80
rcall test
; neg status 15
ldi r19, 134
ldi r16, 0x10
neg r16
ldi r20, 0x15
ldi r21, 0xf0
rcall test
; neg status 21
ldi r19, 135
ldi r16, 0x81
neg r16
ldi r20, 0x21
ldi r21, 0x7f
rcall test
; neg status 35
ldi r19, 136
ldi r16, 0x01
neg r16
ldi r20, 0x35
ldi r21, 0xff
rcall test
; dec status 0
ldi r19, 137
ldi r16, 0x02
dec r16
ldi r20, 0x00
ldi r21, 0x01
rcall test
; dec status 2
ldi r19, 138
ldi r16, 0x01
dec r16
ldi r20, 0x02
ldi r21, 0x00
rcall test
; dec status 14
ldi r19, 139
ldi r16, 0x00
dec r16
ldi r20, 0x14
ldi r21, 0xff
rcall test
; dec status 18
ldi r19, 140
ldi r16, 0x80
dec r16
ldi r20, 0x18
ldi r21, 0x7f
rcall test
; inc status 0
ldi r19, 141
ldi r16, 0x00
inc r16
ldi r20, 0x00
ldi r21, 0x01
rcall test
; inc status 2
ldi r19, 142
ldi r16, 0xff
inc r16
ldi r20, 0x02
ldi r21, 0x00
rcall test
; inc status c
ldi r19, 143
ldi r16, 0x7f
inc r16
ldi r20, 0x0c
ldi r21, 0x80
rcall test
; inc status 14
ldi r19, 144
ldi r16, 0x80
inc r16
ldi r20, 0x14
ldi r21, 0x81
rcall test
;adiw status 0
ldi r19, 145
ldi r25, 0x00
ldi r24, 0x00
adiw r25:r24, 0x01
ldi r20, 0x00
ldi r22, 0x00
ldi r21, 0x01
rcall testword
;adiw status 1
ldi r19, 146
ldi r25, 0xff
ldi r24, 0xc3
adiw r25:r24, 0x3e
ldi r20, 0x01
ldi r22, 0x00
ldi r21, 0x01
rcall testword
; adiw status 2
ldi r19, 147
ldi r25, 0x00
ldi r24, 0x00
adiw r25:r24, 0x00
ldi r20, 0x02
ldi r22, 0x00
ldi r21, 0x00
rcall testword
; adiw status 3
ldi r19, 148
ldi r25, 0xff
ldi r24, 0xc2
adiw r25:r24, 0x3e
ldi r20, 0x03
ldi r22, 0x00
ldi r21, 0x00
rcall testword
; adiw status c
ldi r19, 149
ldi r25, 0x7f
ldi r24, 0xc2
adiw r25:r24, 0x3e
ldi r20, 0x0c
ldi r22, 0x80
ldi r21, 0x00
rcall testword
; adiw status 14
ldi r19, 150
ldi r25, 0x80
ldi r24, 0x00
adiw r25:r24, 0x00
ldi r20, 0x14
ldi r22, 0x80
ldi r21, 0x00
rcall testword
; sbiw status 0
ldi r19, 151
ldi r25, 0x00
ldi r24, 0x01
sbiw r25:r24, 0x00
ldi r20, 0x00
ldi r22, 0x00
ldi r21, 0x01
rcall testword
; sbiw status 2
ldi r19, 152
ldi r25, 0x00
ldi r24, 0x00
sbiw r25:r24, 0x00
ldi r20, 0x02
ldi r22, 0x00
ldi r21, 0x010
rcall testword
; sbiw status 14
ldi r19, 153
ldi r25, 0x80
ldi r24, 0x00
sbiw r25:r24, 0x00
ldi r20, 0x14
ldi r22, 0x80
ldi r21, 0x00
rcall testword
; sbiw status 15
ldi r19, 154
ldi r25, 0x00
ldi r24, 0x00
sbiw r25:r24, 0x01
ldi r20, 0x15
ldi r22, 0xff
ldi r21, 0xff
rcall testword
; sbiw status 18
ldi r19, 155
ldi r25, 0x80
ldi r24, 0x00
sbiw r25:r24, 0x01
ldi r20, 0x18
ldi r22, 0x7f
ldi r21, 0xff
rcall testword
; and status 0
ldi r19, 156
ldi r16, 0x01
ldi r17, 0x01
and r16, r17
ldi r20, 0x00
ldi r21, 0x01
rcall test
; and status 2
ldi r19, 157
ldi r16, 0xaa
ldi r17, 0x55
and r16, r17
ldi r20, 0x02
ldi r21, 0x00
rcall test
; and status 14
ldi r19, 158
ldi r16, 0x80
ldi r17, 0x80
and r16, r17
ldi r20, 0x14
ldi r21, 0x80
rcall test
; or status 0
ldi r19, 159
ldi r16, 0x01
ldi r17, 0x03
or r16, r17
ldi r20, 0x00
ldi r21, 0x03
rcall test
; or status 2
ldi r19, 160
ldi r16, 0x00
ldi r17, 0x00
or r16, r17
ldi r20, 0x02
ldi r21, 0x00
rcall test
; or status 14
ldi r19, 161
ldi r16, 0x80
ldi r17, 0x01
or r16, r17
ldi r20, 0x14
ldi r21, 0x81
rcall test
; eor status 0
ldi r19, 162
ldi r16, 0x01
ldi r17, 0x03
eor r16, r17
ldi r20, 0x00
ldi r21, 0x02
rcall test
; eor status 2
ldi r19, 163
ldi r16, 0xaa
ldi r17, 0xaa
eor r16, r17
ldi r20, 0x02
ldi r21, 0x00
rcall test
; eor status 14
ldi r19, 164
ldi r16, 0xaa
ldi r17, 0x55
eor r16, r17
ldi r20, 0x14
ldi r21, 0xff
rcall test
rjmp success
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment