Professional Documents
Culture Documents
Coal Assignment # 4 Name: Shamikh Sameer Roll No: 20F-1056 Task 1
Coal Assignment # 4 Name: Shamikh Sameer Roll No: 20F-1056 Task 1
.data
input BYTE "Enter a Hexadecimal digit : ",0
decimal BYTE "The Decimal digit is : ",0
.code
main PROC
call Inputt
call DecimalConversion
exit
main ENDP
Inputt PROC
DecimalConversion PROC
cmp bl,'A'
jb less_than_10
jmp greater_than_9
END main
TASK 2
INCLUDE Irvine32.inc
.data
D1 BYTE "Enter a Value : ",0
D2 BYTE "Enter Multiplier : ",0
D3 BYTE "Answer : ",0
.code
main PROC
mov edx, OFFSET D1
call WriteString
call ReadDec
mov ebx, eax
call Multiplication
mov edx,offset D3
call WriteString
call WriteDec
exit
main ENDP
L1:
shr edx, 1
jnc @F
add eax, ebx
@@:
shl ebx, 1
sub ecx, 1
jnc L1
ret
Multiplication ENDP
END main
TASK 3
INCLUDE Irvine32.inc
.data
val1 QWORD 20403004362047A1h
val2 QWORD 055210304A2630B2h
r QWORD 0
.code
main PROC
mov ecx, 8
mov esi , offset val1
mov edi , offset val2
mov ebx , offset r
clc
top:
mov al, BYTE PTR[esi]
sub al, BYTE PTR[edi]
mov BYTE PTR [ebx], al
inc esi
inc edi
inc ebx
loop top
exit
main ENDP
END main
TASK 5
INCLUDE Irvine32.inc
.data
array DWORD 2,4,6,8,10
random DWORD 4
.code
main PROC
cld
mov esi,offset array
mov edi,esi
mov ecx,LENGTHOF array
L1:
lodsd
mul random
stosd
LOOP L1
L2:
mov eax,esi
call WriteDec
loop L2
exit
main ENDP
END main
TASK 6
INCLUDE Irvine32.inc
find PROTO, pTarget:PTR BYTE, pSource:PTR BYTE
.data
TargetString BYTE "96754abc",0
SourceString BYTE "abc",0
D1 BYTE "Source string found at position ",0
D3 BYTE "Unable to find Source string ",0Ah,0Ah,0Dh,0
StopPosition DWORD ?
SizeTargetString DWORD ?
SizeSourceString DWORD ?
pos DWORD ?
.code
main PROC
found1:
mov edx,OFFSET D1
call WriteString
mov eax,pos
call WriteDec
quit:
exit
main ENDP
INVOKE Str_length,pTarget
mov SizeTargetString,eax
INVOKE Str_length,pSource
mov SizeSourceString,eax
mov edi,OFFSET TargetString
mov esi,OFFSET SourceString
mov eax,edi
add eax,SizeTargetString
sub eax,SizeSourceString
inc eax
mov StopPosition,eax ;
cld
mov ecx,SizeSourceString
L1:
pushad
repe cmpsb
popad
je found
inc edi
cmp edi,StopPosition
jae notfound
jmp L1
notfound:
or eax,1
jmp done
found:
mov eax,edi
sub eax,pTarget
cmp eax,eax
done:
ret
find ENDP
END main