%macro print 2
mov rax,1
mov rdi,1
mov rsi,%1
mov rdx,%2
syscall
%endmacro
section .data
msg db "Counting +ve and -ve elements of an array.",10
msglen equ $-msg
msg1 db "Positive nos. are : "
msglen1 equ $-msg1
msg2 db "Negetive nos. are : "
msglen2 equ $-msg2
array dd 12345678h,723490ffh,570036f8h,88006789h,8a9f3680h,0a0dab23h,3bcd0200h
pcnt db 0
ncnt db 0
section .bss
dispbuff resb 2
section .txt
global _start
_start:
print msg,msglen
mov rsi,array
mov rcx,07
again:
bt dword[rsi],31
jnc pnxt
inc byte[ncnt]
jmp pskip
pnxt: inc byte[pcnt]
pskip: inc rsi
inc rsi
inc rsi
inc rsi
loop again
print msg1,msglen1
mov bl,[pcnt]
call disp_result
print msg2,msglen2
mov bl,[ncnt]
call disp_result
mov rax,60
mov rdi,0
Syscall
disp_result:
mov rdi,dispbuff
mov rcx,02
dispup1:
rol bl,4
mov dl,bl
and dl,0fh
add dl,30h
cmp dl,39h
jbe dispskip1
add dl,07h
dispskip1:
mov [rdi],dl
inc rdi
loop dispup1
print dispbuff,2
ret
JW1hY3JvIHByaW50IDIKbW92IHJheCwxCm1vdiByZGksMQptb3YgcnNpLCUxCm1vdiByZHgsJTIKc3lzY2FsbAolZW5kbWFjcm8KCnNlY3Rpb24gLmRhdGEKCm1zZyBkYiAiQ291bnRpbmcgK3ZlIGFuZCAtdmUgZWxlbWVudHMgb2YgYW4gYXJyYXkuIiwxMAptc2dsZW4gZXF1ICQtbXNnCm1zZzEgZGIgIlBvc2l0aXZlIG5vcy4gYXJlIDogIgptc2dsZW4xIGVxdSAkLW1zZzEKbXNnMiBkYiAiTmVnZXRpdmUgbm9zLiBhcmUgOiAgIgptc2dsZW4yIGVxdSAkLW1zZzIKCmFycmF5IGRkIDEyMzQ1Njc4aCw3MjM0OTBmZmgsNTcwMDM2ZjhoLDg4MDA2Nzg5aCw4YTlmMzY4MGgsMGEwZGFiMjNoLDNiY2QwMjAwaApwY250IGRiIDAKbmNudCBkYiAwCgoKc2VjdGlvbiAuYnNzCgpkaXNwYnVmZiByZXNiIDIKIApzZWN0aW9uIC50eHQKZ2xvYmFsIF9zdGFydApfc3RhcnQ6CnByaW50IG1zZyxtc2dsZW4KCm1vdiByc2ksYXJyYXkKbW92IHJjeCwwNwoKYWdhaW46CiAgICAgICAgYnQgZHdvcmRbcnNpXSwzMQogICAgICAgIGpuYyBwbnh0CiAgICAgICAgaW5jIGJ5dGVbbmNudF0KICAgICAgICBqbXAgcHNraXAKICAgcG54dDogaW5jIGJ5dGVbcGNudF0KICAgcHNraXA6IGluYyByc2kKICAgICAgICAgIGluYyByc2kKICAgICAgICAgIGluYyByc2kKICAgICAgICAgIGluYyByc2kKbG9vcCBhZ2FpbgpwcmludCBtc2cxLG1zZ2xlbjEKbW92IGJsLFtwY250XQpjYWxsIGRpc3BfcmVzdWx0CgoKcHJpbnQgbXNnMixtc2dsZW4yCm1vdiBibCxbbmNudF0KY2FsbCBkaXNwX3Jlc3VsdAoKCm1vdiByYXgsNjAKbW92IHJkaSwwClN5c2NhbGwKCmRpc3BfcmVzdWx0OgogICAgICAgICAgICAgbW92IHJkaSxkaXNwYnVmZiAKICAgICAgICAgICAgIG1vdiByY3gsMDIKICAgICAgICBkaXNwdXAxOgogICAgICAgICAgICAgICAgIHJvbCBibCw0CiAgICAgICAgICAgICAgICAgbW92IGRsLGJsCiAgICAgICAgICAgICAgICAgYW5kIGRsLDBmaAogICAgICAgICAgICAgICAgIGFkZCBkbCwzMGgKICAgICAgICAgICAgICAgICBjbXAgZGwsMzloCiAgICAgICAgICAgICAgICAgamJlIGRpc3Bza2lwMQogICAgICAgICAgICAgICAgIGFkZCBkbCwwN2gKICAgICAgIGRpc3Bza2lwMTogCiAgICAgICAgICAgICAgICAgIG1vdiBbcmRpXSxkbAogICAgICAgICAgICAgICAgICBpbmMgcmRpCiAgICAgICAgICAgICAgICAgIGxvb3AgZGlzcHVwMQogICAgICAgICAgICAgICAgICBwcmludCBkaXNwYnVmZiwyCiAgICAgICAgICAgICByZXQgCg==