summaryrefslogtreecommitdiff
path: root/5
diff options
context:
space:
mode:
authorBond_009 <bond.009@outlook.com>2020-12-06 14:25:20 +0100
committerBond_009 <bond.009@outlook.com>2020-12-06 14:25:20 +0100
commit6e5d35cd0a349b880dd39d13de0f5640f2e05ea2 (patch)
treed96a4a8ceea5b62018d1c7fd8690fdd49df52b30 /5
parent1b69fdf2a03937cc58cdde2ce2213f75acc4b05e (diff)
Add ASM version seat_id
Diffstat (limited to '5')
-rw-r--r--5/seat_id.asm48
1 files changed, 48 insertions, 0 deletions
diff --git a/5/seat_id.asm b/5/seat_id.asm
new file mode 100644
index 0000000..562dec4
--- /dev/null
+++ b/5/seat_id.asm
@@ -0,0 +1,48 @@
+global seat_id
+
+section .data
+
+section .text
+
+seat_id:
+ xor eax, eax ; set up return value
+ cmp BYTE [rdi], 66 ; B
+ sete al
+ shl eax, 1
+ xor ecx, ecx
+ cmp BYTE [rdi + 1], 66
+ sete cl
+ or eax, ecx
+ shl eax, 1
+ cmp BYTE [rdi + 2], 66
+ sete cl
+ or eax, ecx
+ shl eax, 1
+ cmp BYTE [rdi + 3], 66
+ sete cl
+ or eax, ecx
+ shl eax, 1
+ cmp BYTE [rdi + 4], 66
+ sete cl
+ or eax, ecx
+ shl eax, 1
+ cmp BYTE [rdi + 5], 66
+ sete cl
+ or eax, ecx
+ shl eax, 1
+ cmp BYTE [rdi + 6], 66
+ sete cl
+ or eax, ecx
+ shl eax, 1
+ cmp BYTE [rdi + 7], 82 ; R
+ sete cl
+ or eax, ecx
+ shl eax, 1
+ cmp BYTE [rdi + 8], 82
+ sete cl
+ or eax, ecx
+ shl eax, 1
+ cmp BYTE [rdi + 9], 82
+ sete cl
+ or eax, ecx
+ ret