June 2018 Update
This commit is contained in:
parent
ba8067c3b7
commit
22f33d4004
5278 changed files with 84726 additions and 14379 deletions
66
Task/Balanced-brackets/X86-Assembly/balanced-brackets.x86
Normal file
66
Task/Balanced-brackets/X86-Assembly/balanced-brackets.x86
Normal file
|
|
@ -0,0 +1,66 @@
|
|||
section .data
|
||||
|
||||
MsgBalanced: db "OK", 10
|
||||
MsgBalancedLen: equ 3
|
||||
|
||||
MsgUnbalanced: db "NOT OK", 10
|
||||
MsgUnbalancedLen: equ 7
|
||||
|
||||
MsgBadInput: db "BAD INPUT", 10
|
||||
MsgBadInputLen: equ 10
|
||||
|
||||
Open: equ '['
|
||||
Closed: equ ']'
|
||||
|
||||
section .text
|
||||
|
||||
BalancedBrackets:
|
||||
|
||||
xor rcx, rcx
|
||||
mov rsi, rdi
|
||||
cld
|
||||
|
||||
processBracket:
|
||||
lodsb
|
||||
cmp al, 0
|
||||
je determineBalance
|
||||
|
||||
cmp al, Open
|
||||
je processOpenBracket
|
||||
|
||||
cmp al, Closed
|
||||
je processClosedBracket
|
||||
|
||||
mov rsi, MsgBadInput
|
||||
mov rdx, MsgBadInputLen
|
||||
jmp displayResult
|
||||
|
||||
processOpenBracket:
|
||||
add rcx, 1
|
||||
jmp processBracket
|
||||
|
||||
processClosedBracket:
|
||||
cmp rcx, 0
|
||||
je unbalanced
|
||||
|
||||
sub rcx, 1
|
||||
jmp processBracket
|
||||
|
||||
|
||||
determineBalance:
|
||||
cmp rcx, 0
|
||||
jne unbalanced
|
||||
|
||||
mov rsi, MsgBalanced
|
||||
mov rdx, MsgBalancedLen
|
||||
jmp displayResult
|
||||
|
||||
unbalanced:
|
||||
mov rsi, MsgUnbalanced
|
||||
mov rdx, MsgUnbalancedLen
|
||||
|
||||
displayResult:
|
||||
mov rax, 1
|
||||
mov rdi, 1
|
||||
syscall
|
||||
ret
|
||||
Loading…
Add table
Add a link
Reference in a new issue