diff options
| author | Bond_009 <bond.009@outlook.com> | 2020-12-06 14:25:20 +0100 |
|---|---|---|
| committer | Bond_009 <bond.009@outlook.com> | 2020-12-06 14:25:20 +0100 |
| commit | 6e5d35cd0a349b880dd39d13de0f5640f2e05ea2 (patch) | |
| tree | d96a4a8ceea5b62018d1c7fd8690fdd49df52b30 /5 | |
| parent | 1b69fdf2a03937cc58cdde2ce2213f75acc4b05e (diff) | |
Add ASM version seat_id
Diffstat (limited to '5')
| -rw-r--r-- | 5/seat_id.asm | 48 |
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 |
