Created
September 1, 2016 05:28
-
-
Save moonblade/73a6f9a7c87a3e53e5eaa44930dc9b4f to your computer and use it in GitHub Desktop.
lab
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
;bsearch | |
;read num to search into r1 | |
movx a,@dptr | |
inc dptr | |
mov r1,a | |
;read final element pos into r2 | |
movx a,@dptr | |
subb a,#1 | |
mov r2,a | |
mov r3,#0 | |
inc dptr | |
;save dpl in r7 | |
mov r7,dpl | |
repeat: | |
;if r2<r3, break | |
mov a,r2 | |
clr c | |
subb a,r3 | |
jc nofound | |
;find mid in a | |
mov a,r2 | |
add a,r3 | |
mov b,#2 | |
div ab | |
;find mid element in r6 and pos in r5 | |
mov r5,a | |
add a,r7 | |
mov dpl,a | |
movx a,@dptr | |
mov r6,a | |
;check if mid element is r1 | |
subb a,r1 | |
jz found | |
jc upper | |
lower: | |
mov a,r5 | |
clr c | |
subb a,#1 | |
mov r2,a | |
jmp repeat | |
upper: | |
mov a,r5 | |
add a,#1 | |
mov r3,a | |
jmp repeat | |
nofound: | |
mov a,#10h | |
mov dpl,a | |
mov a,#0FFh | |
movx @dptr,a | |
jmp ende | |
found: | |
mov a,#10h | |
mov dpl,a | |
mov a,r5 | |
movx @dptr,a | |
ende: | |
sjmp ende |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment