INCLUDE Irvine32.inc
.code
main PROC
call IFOrder
call ReversedHexadecimal
call PrimOrNotOrEmprim
call ArmStrong
call Reversestring
main ENDP
.DATA
count EQU 100
input BYTE count DUP(?), 0
output BYTE count DUP(?), 0
.CODE
Reversestring PROC
MOV EDX, OFFSET input
MOV ECX, count
CALL ReadString
MOV ECX, EAX
MOV ESI, EDX
MOV EDI, offset output
MOV EAX, ECX
L1:
MOVZX EBX, BYTE PTR [ESI]
PUSH EBX
INC ESI
LOOP L1
MOV ECX, EAX
L2:
POP EBX
MOV BYTE PTR[EDI], BL
INC EDI
LOOP L2
MOV EDX, offset output
CALL WriteString
CALL CRLF
ret
Reversestring ENDP
.Data
Input1 dword ?
GoodOutput byte "Ordered"
BadOutput byte "Not Ordered"
countT dword ?
.code
IFOrder PROC
mov edx, offset Input1
mov eax,0
mov ecx,11
call readstring
mov ebx,[edx]
mov countT,041
L1:
cmp ebx,countT
;dec counter
JE Equal
JL NotDefined
inc countT
loop L1
mov ecx,11
Equal:
mov ebx,[edx]
cmp ebx,countt
inc ebx
inc countt
JNE NotOrdered
loop Equal
mov ebx,offset GoodOutput
mov ecx,7
L2:
mov edx,[ebx]
inc ebx
call writestring
loop L2
NotOrdered:
mov ebx,offset BadOutput
mov ecx,11
L5:
mov edx,[ebx]
inc ebx
call writestring
loop L5
NotDefined:
ret
IFOrder ENDP
.Code
ReversedHexadecimal PROC
mov ecx, count
GetInput:
call Readdec ; get input
push eax ; push to stack
loop GetInput
call Crlf
mov ecx,count
DisplayIt:
pop eax ; get number from stack (LIFO)
call WriteDec ; display it
loop DisplayIt
call Crlf
ret
ReversedHexadecimal ENDP
.Data
PrimOrNot word ?
NotPrimNumber byte "Not Prim number"
Emprimnumb word ?
OnlyPrim byte "it is Prim"
PrimAndEmprim byte "Its an emprim number"
.Code
PrimOrNotOrEmprim Proc
call readint
mov PrimOrNot,ax
mov bl,2
mov cx,ax
Divided:
cmp Dx,0
Je NotPrim
inc bl
loop Divided
jmp Emprim
NotPrim:
mov ebx ,offset NotPrimNumber
mov ecx ,8
NotP:
mov edx,[ebx]
inc ebx
call writestring
Loop NotP
Jmp Finish
Emprim:
mov bx,10
mov ax,PrimOrNot
mov ecx,2
EmprimOrNot:
mov EmprimNumb,ax
Loop EmprimOrNot
mov ax,EmprimNumb
mov bx,2
mov cx,ax
mov ax,EmprimNumb
Divided2:
cmp Dx,0
Je NotEmprim
inc bl
loop Divided2
NotEmprim:
mov ebx, offset OnlyPrim
mov ecx ,15
PrimOnly:
mov edx,[ebx]
inc ebx
call writestring
Loop PrimOnly
Jmp Finish
EmprimNumber:
mov ebx ,offset PrimAndEmprim
mov ecx ,20
Emprimnum:
mov edx,[ebx]
inc ebx
call writestring
Loop EmprimNum
Jmp Finish
finish:
ret
PrimOrNotOrEmprim ENDP
.Data
strong word ?
Arms word 3 dup(?)
ItIsEqual byte "The number is armstrong"
ItIsNotEqual byte "The number is not armstrong"
.Code
ArmStrong PROC
mov bx,100
call readdec
mov strong,ax
mov bx,100
mov esi, offset Arms
mov ecx,3
Arm:
mov[esi],ax
mov ax,dx
Loop Arm
mov ax,arms
mul arms+2
mul arms+4
mov bx,strong
cmp ax,bx
Je Armstr
JNE NotArmstr
armstr:
mov ebx, offset ItIsEqual
mov ecx ,23
Emprimnum:
mov edx,[ebx]
inc ebx
call writestring
Loop armstr
Jmp Finish
NotArmstr:
mov ebx ,offset ItIsNotEqual
mov ecx ,27
armstro:
mov edx,[ebx]
inc ebx
call writestring
Loop armstro
Jmp Finish
Finish:
ret
ArmStrong ENDP
END main
SU5DTFVERSBJcnZpbmUzMi5pbmMKCi5jb2RlCm1haW4gUFJPQwogY2FsbCBJRk9yZGVyCiBjYWxsIFJldmVyc2VkSGV4YWRlY2ltYWwKIGNhbGwgUHJpbU9yTm90T3JFbXByaW0KIGNhbGwgQXJtU3Ryb25nCiBjYWxsIFJldmVyc2VzdHJpbmcgCmV4aXQKbWFpbiBFTkRQCiAKIAouREFUQQoJY291bnQgRVFVIDEwMAoJaW5wdXQgQllURSBjb3VudCBEVVAoPyksIDAKCW91dHB1dCBCWVRFIGNvdW50IERVUCg/KSwgMAouQ09ERQoKUmV2ZXJzZXN0cmluZyBQUk9DCglNT1YgRURYLCBPRkZTRVQgaW5wdXQJCQkKCU1PViBFQ1gsIGNvdW50CQoJQ0FMTCBSZWFkU3RyaW5nCglNT1YgRUNYLCBFQVgKCU1PViBFU0ksIEVEWAkJCQoJTU9WIEVESSwgb2Zmc2V0IG91dHB1dAkKCglNT1YgRUFYLCBFQ1gJCQkJCgoJTDE6CgkJTU9WWlggRUJYLCBCWVRFIFBUUiBbRVNJXQoJCVBVU0ggRUJYCgkJSU5DIEVTSQoJTE9PUCBMMQoKCU1PViBFQ1gsIEVBWAkJCQkKCglMMjoKCQlQT1AgRUJYCgkJTU9WIEJZVEUgUFRSW0VESV0sIEJMCgkJSU5DIEVESQoJTE9PUCBMMgoJTU9WIEVEWCwgb2Zmc2V0IG91dHB1dAoJQ0FMTCBXcml0ZVN0cmluZwoJQ0FMTCBDUkxGCnJldApSZXZlcnNlc3RyaW5nIEVORFAKIAouRGF0YQpJbnB1dDEgZHdvcmQgPwpHb29kT3V0cHV0IGJ5dGUgIk9yZGVyZWQiCkJhZE91dHB1dCBieXRlICJOb3QgT3JkZXJlZCIKY291bnRUIGR3b3JkID8KCgouY29kZQpJRk9yZGVyIFBST0MKIAptb3YgZWR4LCBvZmZzZXQgSW5wdXQxCm1vdiBlYXgsMAptb3YgZWN4LDExCmNhbGwgcmVhZHN0cmluZwptb3YgZWJ4LFtlZHhdCm1vdiBjb3VudFQsMDQxCkwxOgpjbXAgZWJ4LGNvdW50VAo7ZGVjIGNvdW50ZXIKSkUgRXF1YWwKSkwgTm90RGVmaW5lZAppbmMgY291bnRUCmxvb3AgTDEKbW92IGVjeCwxMQogCkVxdWFsOgptb3YgZWJ4LFtlZHhdCmNtcCBlYngsY291bnR0CmluYyBlYngKaW5jIGNvdW50dApKTkUgTm90T3JkZXJlZApsb29wIEVxdWFsCm1vdiBlYngsb2Zmc2V0IEdvb2RPdXRwdXQKbW92IGVjeCw3CkwyOgptb3YgZWR4LFtlYnhdCmluYyBlYngKY2FsbCB3cml0ZXN0cmluZwogICBsb29wIEwyIAogCiAKTm90T3JkZXJlZDoKbW92IGVieCxvZmZzZXQgQmFkT3V0cHV0Cm1vdiBlY3gsMTEKTDU6Cm1vdiBlZHgsW2VieF0KaW5jIGVieApjYWxsIHdyaXRlc3RyaW5nCiAgIGxvb3AgTDUKIAogTm90RGVmaW5lZDoKCWV4aXQKIAoJcmV0CglJRk9yZGVyIEVORFAKIAogCi5Db2RlCgpSZXZlcnNlZEhleGFkZWNpbWFsIFBST0MKCSBtb3YgICAgIGVjeCwgY291bnQKR2V0SW5wdXQ6CiAgICBjYWxsICAgIFJlYWRkZWMgICAgICAgIDsgZ2V0IGlucHV0CiAgICBwdXNoICAgIGVheCAgICAgICAgICAgICA7IHB1c2ggdG8gc3RhY2sKICAgIGxvb3AgICAgR2V0SW5wdXQgICAgICAgIAoKICAgIGNhbGwgICAgQ3JsZgogICAgbW92ICAgICBlY3gsY291bnQKRGlzcGxheUl0OgogICAgcG9wICAgICBlYXggICAgICAgICAgICAgOyBnZXQgbnVtYmVyIGZyb20gc3RhY2sgKExJRk8pCiAgICBjYWxsICAgIFdyaXRlRGVjICAgICAgICA7IGRpc3BsYXkgaXQKICAgIGxvb3AgICAgRGlzcGxheUl0CgogICBjYWxsICAgICBDcmxmCglyZXQgCglSZXZlcnNlZEhleGFkZWNpbWFsIEVORFAKIAogCi5EYXRhClByaW1Pck5vdCB3b3JkID8KTm90UHJpbU51bWJlciBieXRlICJOb3QgUHJpbSBudW1iZXIiCkVtcHJpbW51bWIgd29yZCA/Ck9ubHlQcmltIGJ5dGUgIml0IGlzIFByaW0iClByaW1BbmRFbXByaW0gYnl0ZSAiSXRzIGFuIGVtcHJpbSBudW1iZXIiCgoKLkNvZGUKUHJpbU9yTm90T3JFbXByaW0gUHJvYwogCmNhbGwgcmVhZGludAptb3YgUHJpbU9yTm90LGF4Cm1vdiBibCwyCmRpdiBibAptb3YgY3gsYXgKRGl2aWRlZDoKZGl2IGJsCmNtcCBEeCwwCkplIE5vdFByaW0KaW5jIGJsCmxvb3AgRGl2aWRlZApqbXAgRW1wcmltCk5vdFByaW06Cm1vdiBlYnggLG9mZnNldCBOb3RQcmltTnVtYmVyCm1vdiBlY3ggLDgKTm90UDoKbW92IGVkeCxbZWJ4XQppbmMgZWJ4CmNhbGwgd3JpdGVzdHJpbmcKTG9vcCBOb3RQCkptcCBGaW5pc2gKIApFbXByaW06Cm1vdiBieCwxMAptb3YgYXgsUHJpbU9yTm90Cm1vdiBlY3gsMgpFbXByaW1Pck5vdDoKZGl2IGJ4Cm1vdiBFbXByaW1OdW1iLGF4Ckxvb3AgRW1wcmltT3JOb3QKbW92IGF4LEVtcHJpbU51bWIKbW92IGJ4LDIKZGl2IGJ4Cm1vdiBjeCxheAptb3YgYXgsRW1wcmltTnVtYgpEaXZpZGVkMjoKZGl2IGJsCmNtcCBEeCwwCkplIE5vdEVtcHJpbQppbmMgYmwKbG9vcCBEaXZpZGVkMgogCk5vdEVtcHJpbToKbW92IGVieCwgb2Zmc2V0IE9ubHlQcmltCm1vdiBlY3ggLDE1ClByaW1Pbmx5Ogptb3YgZWR4LFtlYnhdCmluYyBlYngKY2FsbCB3cml0ZXN0cmluZwpMb29wIFByaW1Pbmx5CkptcCBGaW5pc2gKIApFbXByaW1OdW1iZXI6Cm1vdiBlYnggLG9mZnNldCBQcmltQW5kRW1wcmltCm1vdiBlY3ggLDIwCkVtcHJpbW51bToKbW92IGVkeCxbZWJ4XQppbmMgZWJ4CmNhbGwgd3JpdGVzdHJpbmcKTG9vcCBFbXByaW1OdW0KSm1wIEZpbmlzaAogCiAKZmluaXNoOgpyZXQKUHJpbU9yTm90T3JFbXByaW0gRU5EUAogCiAKLkRhdGEKc3Ryb25nIHdvcmQgPwpBcm1zIHdvcmQgMyBkdXAoPykKSXRJc0VxdWFsIGJ5dGUgIlRoZSBudW1iZXIgaXMgYXJtc3Ryb25nIgpJdElzTm90RXF1YWwgYnl0ZSAiVGhlIG51bWJlciBpcyBub3QgYXJtc3Ryb25nIgoKLkNvZGUKQXJtU3Ryb25nIFBST0MKbW92IGJ4LDEwMApjYWxsIHJlYWRkZWMKbW92IHN0cm9uZyxheAptb3YgYngsMTAwCm1vdiBlc2ksIG9mZnNldCBBcm1zCm1vdiBlY3gsMwpBcm06CmRpdiBieAptb3ZbZXNpXSxheAptb3YgYXgsZHgKTG9vcCBBcm0KIG1vdiBheCxhcm1zCm11bCBhcm1zKzIKbXVsIGFybXMrNAogbW92IGJ4LHN0cm9uZwpjbXAgYXgsYngKSmUgQXJtc3RyCkpORSBOb3RBcm1zdHIKIAphcm1zdHI6Cm1vdiBlYngsIG9mZnNldCBJdElzRXF1YWwKbW92IGVjeCAsMjMKRW1wcmltbnVtOgptb3YgZWR4LFtlYnhdCmluYyBlYngKY2FsbCB3cml0ZXN0cmluZwpMb29wIGFybXN0cgpKbXAgRmluaXNoCiAKTm90QXJtc3RyOgptb3YgZWJ4ICxvZmZzZXQgSXRJc05vdEVxdWFsCm1vdiBlY3ggLDI3CmFybXN0cm86Cm1vdiBlZHgsW2VieF0KaW5jIGVieApjYWxsIHdyaXRlc3RyaW5nCkxvb3AgYXJtc3RybwpKbXAgRmluaXNoCiAKIApGaW5pc2g6CnJldApBcm1TdHJvbmcgRU5EUAoKCkVORCBtYWlu