Pruned old branch & content. Initial commit.
This commit is contained in:
parent
6a5ab32683
commit
757d1dc81c
2
.gitignore
vendored
Normal file
2
.gitignore
vendored
Normal file
@ -0,0 +1,2 @@
|
|||||||
|
*.odt
|
||||||
|
*.o
|
@ -1,88 +0,0 @@
|
|||||||
; THIS CODE HAS BEEN TESTED AND IS FULLY OPERATIONAL.
|
|
||||||
|
|
||||||
; Problem Statement: Write X86/64 ALP to count number of positive and negative numbers from the array.
|
|
||||||
|
|
||||||
; Code from Microprocessor (SPPU - Second Year - Computer Engineering - Content) repository on KSKA Git: https://git.kska.io/sppu-se-comp-content/Microprocessor/
|
|
||||||
|
|
||||||
|
|
||||||
; BEGINNING OF CODE
|
|
||||||
%macro print 2
|
|
||||||
mov rax,1 ; Standard output
|
|
||||||
mov rdi,1 ; Input write
|
|
||||||
mov rsi,%1 ; Display message address
|
|
||||||
mov rdx,%2 ; Message length
|
|
||||||
syscall ; Interrupt for kernel in 64-bit
|
|
||||||
%endmacro
|
|
||||||
|
|
||||||
section .data
|
|
||||||
|
|
||||||
m1 db 10,"ALP to count positive and negative numbers from an array",10
|
|
||||||
l1 equ $-m1
|
|
||||||
|
|
||||||
m2 db 10,"The count of positive numbers is:",10
|
|
||||||
l2 equ $-m2
|
|
||||||
|
|
||||||
m3 db 10,"The count of negative numbers is:",10
|
|
||||||
l3 equ $-m3
|
|
||||||
|
|
||||||
;array dw 8132h,6879h,711Ah,3567h,4567h
|
|
||||||
;array dd 81328132h,12346879h,6735711Ah,34563567h,67894567h
|
|
||||||
array dq 81328132ABCDh,12346879AAAAh,6735711AFFFFh,34563567EEEEh,67894567DEFAh
|
|
||||||
|
|
||||||
newline db 10
|
|
||||||
pcnt db 00
|
|
||||||
ncnt db 00
|
|
||||||
|
|
||||||
section .bss
|
|
||||||
displaybuffer resb 2
|
|
||||||
|
|
||||||
section .text
|
|
||||||
|
|
||||||
global _start:
|
|
||||||
_start:
|
|
||||||
|
|
||||||
print m1,l1
|
|
||||||
|
|
||||||
mov rsi,array
|
|
||||||
mov rcx,05
|
|
||||||
|
|
||||||
up:
|
|
||||||
bt qword [rsi],63 ; Check the most significant bit for negativity
|
|
||||||
jnc pnxt ; If not negative, jump to pnxt
|
|
||||||
inc byte[ncnt] ; Increment negative count
|
|
||||||
jmp pskip ; Jump to pskip
|
|
||||||
pnxt: inc byte[pcnt] ; Increment positive count
|
|
||||||
pskip: add rsi,8 ; Move to next 8 bytes
|
|
||||||
loop up ; Loop until rcx becomes zero
|
|
||||||
|
|
||||||
print m2,l2
|
|
||||||
mov bl,[pcnt]
|
|
||||||
call display
|
|
||||||
print newline,1
|
|
||||||
|
|
||||||
print m3,l3
|
|
||||||
mov bl,[ncnt]
|
|
||||||
call display
|
|
||||||
print newline,1
|
|
||||||
|
|
||||||
mov rax,60
|
|
||||||
syscall
|
|
||||||
|
|
||||||
display:
|
|
||||||
mov rdi,displaybuffer ; Destination for displaying
|
|
||||||
mov rcx,02 ; Display 2 characters
|
|
||||||
dloop:
|
|
||||||
rol bl,04 ; Rotate left by 4 bits
|
|
||||||
mov dl,bl ; Move contents of bl to dl
|
|
||||||
and dl,0fh ; Mask out upper bits
|
|
||||||
add dl,30h ; Convert to ASCII
|
|
||||||
cmp dl,39h ; Compare if greater than '9'
|
|
||||||
jbe skip ; Jump if below or equal
|
|
||||||
add dl,07h ; Adjust for letters
|
|
||||||
skip:
|
|
||||||
mov [rdi],dl ; Store the character
|
|
||||||
inc rdi ; Move to next position
|
|
||||||
loop dloop ; Loop until rcx becomes zero
|
|
||||||
print displaybuffer,2 ; Print the display buffer
|
|
||||||
ret
|
|
||||||
; END OF CODE
|
|
@ -1,145 +0,0 @@
|
|||||||
; THIS CODE HAS NOT BEEN TESTED AND IS NOT FULLY OPERATIONAL.
|
|
||||||
|
|
||||||
; Problem Statement: Write X86/64 ALP to switch from real mode to protected mode and display the values of GDTR, LDTR, IDTR, TR and MSW Registers also identify CPU type using CPUID instruction.
|
|
||||||
|
|
||||||
; Code from Microprocessor (SPPU - Second Year - Computer Engineering - Content) repository on KSKA Git: https://git.kska.io/sppu-se-comp-content/Microprocessor/
|
|
||||||
|
|
||||||
|
|
||||||
; BEGINNING OF CODE
|
|
||||||
section .data
|
|
||||||
rmodemsg db 10,'Processor is in REAL MODE.',
|
|
||||||
rmsg_len:equ $-rmodemsg
|
|
||||||
|
|
||||||
pmodemsg db 10,'Processor is in PROTECTED MODE.'
|
|
||||||
pmsg_len:equ $-pmodemsg
|
|
||||||
|
|
||||||
gdtmsg db 10,'GDT Contents are: '
|
|
||||||
gmsg_len:equ $-gdtmsg
|
|
||||||
|
|
||||||
ldtmsg db 10,'LDT Contents are: '
|
|
||||||
lmsg_len:equ $-ldtmsg
|
|
||||||
|
|
||||||
idtmsg db 10,'IDT Contents are: '
|
|
||||||
imsg_len:equ $-idtmsg
|
|
||||||
|
|
||||||
trmsg db 10,'Task Register Contents are: '
|
|
||||||
tmsg_len: equ $-trmsg
|
|
||||||
|
|
||||||
mswmsg db 10,'Machine Status Word: '
|
|
||||||
mmsg_len:equ $-mswmsg
|
|
||||||
|
|
||||||
colmsg db ':'
|
|
||||||
|
|
||||||
nwline db 10
|
|
||||||
|
|
||||||
section .bss
|
|
||||||
gdt resd 1
|
|
||||||
resw 1
|
|
||||||
ldt resw 1
|
|
||||||
idt resd 1
|
|
||||||
resw 1
|
|
||||||
tr resw 1
|
|
||||||
|
|
||||||
cr0_data resd 1
|
|
||||||
|
|
||||||
dnum_buff resb 04
|
|
||||||
|
|
||||||
%macro print 2
|
|
||||||
mov rax,01
|
|
||||||
mov rdi,01
|
|
||||||
mov rsi,%1
|
|
||||||
mov rdx,%2
|
|
||||||
syscall
|
|
||||||
%endmacro
|
|
||||||
|
|
||||||
section .text
|
|
||||||
global _start
|
|
||||||
_start:
|
|
||||||
smsw eax ;Reading CR0. As MSW is 32-bit cannot use RAX register.
|
|
||||||
|
|
||||||
mov [cr0_data],rax
|
|
||||||
|
|
||||||
bt rax,0 ;Checking PE bit, if 1=Protected Mode, else Real Mode
|
|
||||||
jc prmode
|
|
||||||
print rmodemsg,rmsg_len
|
|
||||||
jmp nxt1
|
|
||||||
|
|
||||||
prmode: print pmodemsg,pmsg_len
|
|
||||||
|
|
||||||
nxt1:sgdt [gdt]
|
|
||||||
sldt [ldt]
|
|
||||||
sidt [idt]
|
|
||||||
str [tr]
|
|
||||||
print gdtmsg,gmsg_len
|
|
||||||
|
|
||||||
mov bx,[gdt+4]
|
|
||||||
call print_num
|
|
||||||
|
|
||||||
mov bx,[gdt+2]
|
|
||||||
call print_num
|
|
||||||
|
|
||||||
print colmsg,1
|
|
||||||
|
|
||||||
mov bx,[gdt]
|
|
||||||
call print_num
|
|
||||||
|
|
||||||
print ldtmsg,lmsg_len
|
|
||||||
mov bx,[ldt]
|
|
||||||
call print_num
|
|
||||||
|
|
||||||
print idtmsg,imsg_len
|
|
||||||
|
|
||||||
mov bx,[idt+4]
|
|
||||||
call print_num
|
|
||||||
|
|
||||||
mov bx,[idt+2]
|
|
||||||
call print_num
|
|
||||||
|
|
||||||
print colmsg,1
|
|
||||||
|
|
||||||
mov bx,[idt]
|
|
||||||
call print_num
|
|
||||||
|
|
||||||
print trmsg,tmsg_len
|
|
||||||
|
|
||||||
mov bx,[tr]
|
|
||||||
call print_num
|
|
||||||
|
|
||||||
print mswmsg,mmsg_len
|
|
||||||
|
|
||||||
mov bx,[cr0_data+2]
|
|
||||||
call print_num
|
|
||||||
|
|
||||||
mov bx,[cr0_data]
|
|
||||||
call print_num
|
|
||||||
|
|
||||||
print nwline,1
|
|
||||||
|
|
||||||
|
|
||||||
exit: mov rax,60
|
|
||||||
xor rdi,rdi
|
|
||||||
syscall
|
|
||||||
|
|
||||||
print_num:
|
|
||||||
mov rsi,dnum_buff ;point esi to buffer
|
|
||||||
|
|
||||||
mov rcx,04 ;load number of digits to printlay
|
|
||||||
|
|
||||||
up1:
|
|
||||||
rol bx,4 ;rotate number left by four bits
|
|
||||||
mov dl,bl ;move lower byte in dl
|
|
||||||
and dl,0fh ;mask upper digit of byte in dl
|
|
||||||
add dl,30h ;add 30h to calculate ASCII code
|
|
||||||
cmp dl,39h ;compare with 39h
|
|
||||||
jbe skip1 ;if less than 39h skip adding 07 more
|
|
||||||
add dl,07h ;else add 07
|
|
||||||
skip1:
|
|
||||||
mov [rsi],dl ;store ASCII code in buffer
|
|
||||||
inc rsi ;point to next byte
|
|
||||||
loop up1 ;decrement the count of digits to printlay
|
|
||||||
;if not zero jump to repeat
|
|
||||||
|
|
||||||
print dnum_buff,4 ;printlay the number from buffer
|
|
||||||
|
|
||||||
ret
|
|
||||||
; END OF CODE
|
|
@ -1,130 +0,0 @@
|
|||||||
; THIS CODE HAS NOT BEEN TESTED AND IS NOT FULLY OPERATIONAL.
|
|
||||||
|
|
||||||
; Problem Statement: Write x86 ALP to find the factorial of a given integer number on a command line by using recursion. Explicit stack manipulation is expected in the code.
|
|
||||||
|
|
||||||
; Code from Microprocessor (SPPU - Second Year - Computer Engineering - Content) repository on KSKA Git: https://git.kska.io/sppu-se-comp-content/Microprocessor/
|
|
||||||
|
|
||||||
|
|
||||||
; BEGINNING OF CODE
|
|
||||||
%macro print 2
|
|
||||||
mov rax,1
|
|
||||||
mov rdi,1
|
|
||||||
mov rsi,%1
|
|
||||||
mov rdx,%2
|
|
||||||
syscall
|
|
||||||
%endmacro
|
|
||||||
|
|
||||||
%macro exitprog 0
|
|
||||||
mov rax,60
|
|
||||||
xor rdi,rdi
|
|
||||||
syscall
|
|
||||||
%endmacro
|
|
||||||
|
|
||||||
%macro gtch 1
|
|
||||||
mov rax,0
|
|
||||||
mov rdi,0
|
|
||||||
mov rsi,%1
|
|
||||||
mov rdx,1
|
|
||||||
syscall
|
|
||||||
%endmacro
|
|
||||||
|
|
||||||
section .data
|
|
||||||
nwline db 10
|
|
||||||
m0 db 10,13,"----- Program to calculate factorial of a given number -----",10,10
|
|
||||||
l0 equ $-m0
|
|
||||||
m2 db 10,"Enter a number (2 digit HEX no.): "
|
|
||||||
l2 equ $-m2
|
|
||||||
m4 db 10,"The factorial is: "
|
|
||||||
l4 equ $-m4
|
|
||||||
factorial dq 1
|
|
||||||
|
|
||||||
section .bss
|
|
||||||
no1 resq 1
|
|
||||||
input resb 1
|
|
||||||
output resb 1
|
|
||||||
|
|
||||||
section .text
|
|
||||||
global _start
|
|
||||||
_start:
|
|
||||||
|
|
||||||
print m0,l0
|
|
||||||
print m2,l2
|
|
||||||
call getnum
|
|
||||||
|
|
||||||
mov [no1],rax ;accept number
|
|
||||||
gtch input ;to read and discard ENTER key ;pressed
|
|
||||||
|
|
||||||
mov rcx,[no1]
|
|
||||||
|
|
||||||
call facto
|
|
||||||
mov rax,00
|
|
||||||
|
|
||||||
print m4,l4
|
|
||||||
mov rax,qword[factorial]
|
|
||||||
call disphx16 ;displays a 8 digit hex number ;in rax
|
|
||||||
|
|
||||||
exitprog
|
|
||||||
|
|
||||||
facto:
|
|
||||||
push rcx
|
|
||||||
cmp rcx,01
|
|
||||||
jne ahead
|
|
||||||
jmp exit2
|
|
||||||
|
|
||||||
ahead: dec rcx
|
|
||||||
|
|
||||||
call facto
|
|
||||||
|
|
||||||
exit2:
|
|
||||||
pop rcx
|
|
||||||
mov rax,rcx
|
|
||||||
mul qword[factorial]
|
|
||||||
mov qword[factorial],rax
|
|
||||||
ret
|
|
||||||
;Procedure to get a 2 digit hex no from user
|
|
||||||
;number returned in rax
|
|
||||||
|
|
||||||
getnum:
|
|
||||||
mov cx,0204h
|
|
||||||
mov rbx,0
|
|
||||||
ll2:
|
|
||||||
push rcx
|
|
||||||
gtch input
|
|
||||||
pop rcx
|
|
||||||
mov rax,0
|
|
||||||
mov al,byte[input]
|
|
||||||
sub rax,30h
|
|
||||||
cmp rax,09h
|
|
||||||
jbe skip1
|
|
||||||
sub rax,7
|
|
||||||
|
|
||||||
skip1:
|
|
||||||
shl rbx,cl
|
|
||||||
add rbx,rax
|
|
||||||
dec ch
|
|
||||||
jnz ll2
|
|
||||||
mov rax,rbx
|
|
||||||
ret
|
|
||||||
|
|
||||||
disphx16: ;displays a 16 digit hex number
|
|
||||||
mov rbx,rax
|
|
||||||
mov cx,1004h ;16 digits to display and 04 count ; to rotate
|
|
||||||
|
|
||||||
ll6:
|
|
||||||
rol rbx,cl
|
|
||||||
mov rdx,rbx
|
|
||||||
and rdx,0fh
|
|
||||||
add rdx,30h
|
|
||||||
cmp rdx,039h
|
|
||||||
jbe skip4
|
|
||||||
add rdx,7
|
|
||||||
|
|
||||||
skip4:
|
|
||||||
mov byte[output],dl
|
|
||||||
push rcx
|
|
||||||
print output,1
|
|
||||||
pop rcx
|
|
||||||
dec ch
|
|
||||||
jnz ll6
|
|
||||||
ret
|
|
||||||
; END OF CODE
|
|
@ -1,176 +0,0 @@
|
|||||||
; THIS CODE HAS NOT BEEN TESTED AND IS NOT FULLY OPERATIONAL.
|
|
||||||
|
|
||||||
; Problem Statement: Write 80387 ALP to obtain: i) Mean ii) Variance iii) Standard Deviation. Define the input values in data segment.
|
|
||||||
|
|
||||||
; Code from Microprocessor (SPPU - Second Year - Computer Engineering - Content) repository on KSKA Git: https://git.kska.io/sppu-se-comp-content/Microprocessor/
|
|
||||||
|
|
||||||
|
|
||||||
; BEGINNING OF CODE
|
|
||||||
%macro print 2
|
|
||||||
mov rax,01
|
|
||||||
mov rdi,01
|
|
||||||
mov rsi,%1
|
|
||||||
mov rdx,%2
|
|
||||||
syscall
|
|
||||||
%endmacro
|
|
||||||
|
|
||||||
|
|
||||||
section .data
|
|
||||||
m0 db 10,"------ Program to calculate mean, variance, standard deviation -----", 10
|
|
||||||
l0:equ $-m0
|
|
||||||
|
|
||||||
m1 db 10,"Mean is: "
|
|
||||||
l1:equ $-m1
|
|
||||||
|
|
||||||
m2 db 10,"Variance is: "
|
|
||||||
l2:equ $-m2
|
|
||||||
|
|
||||||
m3 db 10,"Standard Deviation is: "
|
|
||||||
l3:equ $-m3
|
|
||||||
|
|
||||||
m4 db 10,"Values are: 102.59, 198.21, 100.67"
|
|
||||||
l4:equ $-m4
|
|
||||||
|
|
||||||
dpoint db "."
|
|
||||||
|
|
||||||
hdec dq 100
|
|
||||||
|
|
||||||
num1 dd 102.59
|
|
||||||
num2 dd 198.21
|
|
||||||
num3 dd 100.67
|
|
||||||
num4 dd 3.00
|
|
||||||
|
|
||||||
newline db 0xa
|
|
||||||
|
|
||||||
section .bss
|
|
||||||
|
|
||||||
dispbuff resb 1
|
|
||||||
resbuff resb 10 ;or we can also write resbuff rest 1
|
|
||||||
mean resd 1
|
|
||||||
variance resd 1
|
|
||||||
|
|
||||||
|
|
||||||
section .text
|
|
||||||
|
|
||||||
global _start
|
|
||||||
_start:
|
|
||||||
print m0,l0
|
|
||||||
print m4,l4
|
|
||||||
|
|
||||||
finit ;initialize coprocessor
|
|
||||||
fldz ;load stack top 0
|
|
||||||
|
|
||||||
;logic to calculate mean
|
|
||||||
|
|
||||||
fld dword[num1] ;first number on x387
|
|
||||||
fld dword[num2]
|
|
||||||
|
|
||||||
fadd st0,st1
|
|
||||||
|
|
||||||
fld dword[num3]
|
|
||||||
fadd st0,st1
|
|
||||||
|
|
||||||
fdiv dword[num4] ;st0=add/3=mean
|
|
||||||
fst dword[mean]
|
|
||||||
|
|
||||||
print m1,l1
|
|
||||||
|
|
||||||
call disp_result
|
|
||||||
|
|
||||||
print newline,01 ;newline
|
|
||||||
|
|
||||||
;logic to calculate variance
|
|
||||||
|
|
||||||
mov rsi,num1
|
|
||||||
call cal_diff_sqr
|
|
||||||
|
|
||||||
mov rsi,num2
|
|
||||||
call cal_diff_sqr
|
|
||||||
|
|
||||||
fadd st0,st1
|
|
||||||
|
|
||||||
mov rsi,num3
|
|
||||||
call cal_diff_sqr
|
|
||||||
|
|
||||||
fadd st0,st1
|
|
||||||
|
|
||||||
fdiv dword[num4] ;divide by cardinality
|
|
||||||
|
|
||||||
fst dword[variance]
|
|
||||||
|
|
||||||
print m2,l2
|
|
||||||
|
|
||||||
call disp_result
|
|
||||||
|
|
||||||
print newline,01 ;newline
|
|
||||||
|
|
||||||
;logic to calculate standard deviation
|
|
||||||
|
|
||||||
fld dword[variance]
|
|
||||||
fsqrt
|
|
||||||
|
|
||||||
print m3,l3
|
|
||||||
call disp_result
|
|
||||||
|
|
||||||
print newline,01 ;newline
|
|
||||||
|
|
||||||
mov rax,60
|
|
||||||
mov rdi,0
|
|
||||||
syscall
|
|
||||||
|
|
||||||
disp_result:
|
|
||||||
fimul dword[hdec]
|
|
||||||
fbstp [resbuff] ;store bcd and pop from top of the stack
|
|
||||||
|
|
||||||
xor rcx,rcx ;clear rcx register
|
|
||||||
mov rcx,09h
|
|
||||||
mov rsi,resbuff+9 ;rsi pointing to msb of resultant
|
|
||||||
|
|
||||||
up1:
|
|
||||||
push rcx
|
|
||||||
push rsi
|
|
||||||
|
|
||||||
mov bl,[rsi]
|
|
||||||
call disp8_proc
|
|
||||||
|
|
||||||
print dispbuff,02
|
|
||||||
pop rsi
|
|
||||||
dec rsi
|
|
||||||
pop rcx
|
|
||||||
loop up1
|
|
||||||
|
|
||||||
print dpoint,01
|
|
||||||
|
|
||||||
mov bl,[resbuff]
|
|
||||||
call disp8_proc
|
|
||||||
|
|
||||||
print dispbuff,02
|
|
||||||
|
|
||||||
ret
|
|
||||||
|
|
||||||
disp8_proc:
|
|
||||||
mov rdi,dispbuff
|
|
||||||
mov rcx,02
|
|
||||||
|
|
||||||
back:
|
|
||||||
rol bl,04
|
|
||||||
mov dl,bl
|
|
||||||
and dl,0Fh
|
|
||||||
cmp dl,09h
|
|
||||||
jbe skip
|
|
||||||
add dl,07h
|
|
||||||
|
|
||||||
skip:
|
|
||||||
add dl,30h
|
|
||||||
mov [rdi],dl
|
|
||||||
inc rdi
|
|
||||||
loop back
|
|
||||||
|
|
||||||
ret
|
|
||||||
|
|
||||||
cal_diff_sqr:
|
|
||||||
fld dword[rsi]
|
|
||||||
fsub dword[mean]
|
|
||||||
fmul st0,st0
|
|
||||||
ret
|
|
||||||
; END OF CODE
|
|
@ -1,153 +0,0 @@
|
|||||||
; THIS CODE HAS BEEN TESTED AND IS FULLY OPERATIONAL.
|
|
||||||
|
|
||||||
; Problem Statement: Write 80387 ALP to find the roots of the quadratic equation. All the possible cases must be considered in calculating the roots.
|
|
||||||
|
|
||||||
; Code from Microprocessor (SPPU - Second Year - Computer Engineering - Content) repository on KSKA Git: https://git.kska.io/sppu-se-comp-content/Microprocessor/
|
|
||||||
|
|
||||||
|
|
||||||
; BEGINNING OF CODE
|
|
||||||
section .data
|
|
||||||
msg1 db "Complex Root",10
|
|
||||||
msglen1 equ $-msg1
|
|
||||||
msg2 db "Root 1: "
|
|
||||||
msglen2 equ $-msg2
|
|
||||||
msg3 db 10, "Root 2: "
|
|
||||||
msglen3 equ $-msg3
|
|
||||||
a dd 1.00
|
|
||||||
b dd -6.00
|
|
||||||
c dd 8.00
|
|
||||||
four dd 4.00
|
|
||||||
two dd 2.00
|
|
||||||
|
|
||||||
hdec dq 100
|
|
||||||
point db "."
|
|
||||||
|
|
||||||
section .bss
|
|
||||||
|
|
||||||
root1 resd 1
|
|
||||||
root2 resd 1
|
|
||||||
resbuff rest 1
|
|
||||||
temp resb 2
|
|
||||||
disc resd 1
|
|
||||||
|
|
||||||
%macro write 2 ;macro for display
|
|
||||||
mov rax,1
|
|
||||||
mov rdi,1
|
|
||||||
mov rsi,%1
|
|
||||||
mov rdx,%2
|
|
||||||
syscall
|
|
||||||
%endmacro
|
|
||||||
|
|
||||||
%macro read 2 ;macro for input
|
|
||||||
mov rax,0
|
|
||||||
mov rdi,0
|
|
||||||
mov rsi,%1
|
|
||||||
mov rdx,%2
|
|
||||||
syscall
|
|
||||||
%endmacro
|
|
||||||
|
|
||||||
|
|
||||||
%macro exit 0 ;macro for exit
|
|
||||||
mov rax,60
|
|
||||||
xor rdi,rdi
|
|
||||||
syscall
|
|
||||||
%endmacro
|
|
||||||
|
|
||||||
section .text
|
|
||||||
global _start
|
|
||||||
_start:
|
|
||||||
|
|
||||||
finit ;initialise 80387 co-processor
|
|
||||||
fld dword[b] ;stack: b
|
|
||||||
|
|
||||||
fmul dword[b] ;stack: b*b
|
|
||||||
|
|
||||||
fld dword[a] ;stack: a, b*b
|
|
||||||
|
|
||||||
fmul dword[c] ;stack: a*c, b*b
|
|
||||||
|
|
||||||
fmul dword[four] ;stack: 4*a*c,b*b
|
|
||||||
|
|
||||||
fsub ;stack: b*b - 4*a*c
|
|
||||||
|
|
||||||
ftst ;compares ST0 and 0
|
|
||||||
jb no_real_solutions
|
|
||||||
|
|
||||||
fsqrt ;stack: sqrt(b*b - 4*a*c)
|
|
||||||
fst dword[disc] ;store disc= sqrt(b*b - 4*a*c)
|
|
||||||
|
|
||||||
fsub dword[b] ;stack: disc-b
|
|
||||||
|
|
||||||
fdiv dword[a] ;stack: disc-b/2*a or (-b+disc)/2a
|
|
||||||
|
|
||||||
|
|
||||||
fdiv dword[two]
|
|
||||||
|
|
||||||
write msg2,msglen2
|
|
||||||
|
|
||||||
call disp_proc
|
|
||||||
|
|
||||||
fldz ;stack:0
|
|
||||||
fsub dword[disc] ;stack:-disc
|
|
||||||
fsub dword[b] ;stack: -disc - b
|
|
||||||
fdiv dword[a] ;stack: (-b - disc)/(2*a)
|
|
||||||
fdiv dword[two]
|
|
||||||
|
|
||||||
write msg3,msglen3
|
|
||||||
call disp_proc
|
|
||||||
jmp exi
|
|
||||||
|
|
||||||
no_real_solutions:
|
|
||||||
write msg1,msglen1
|
|
||||||
exi :
|
|
||||||
|
|
||||||
mov rax,60
|
|
||||||
mov rdi,1
|
|
||||||
syscall
|
|
||||||
|
|
||||||
|
|
||||||
disp_proc:
|
|
||||||
FIMUL dword[hdec]
|
|
||||||
FBSTP tword[resbuff]
|
|
||||||
mov rsi,resbuff+9
|
|
||||||
mov rcx,09
|
|
||||||
next1:
|
|
||||||
|
|
||||||
push rcx
|
|
||||||
push rsi
|
|
||||||
|
|
||||||
mov bl,[rsi]
|
|
||||||
call disp
|
|
||||||
|
|
||||||
pop rsi
|
|
||||||
pop rcx
|
|
||||||
|
|
||||||
dec rsi
|
|
||||||
loop next1
|
|
||||||
|
|
||||||
push rsi
|
|
||||||
write point,1
|
|
||||||
pop rsi
|
|
||||||
mov bl,[rsi]
|
|
||||||
call disp
|
|
||||||
ret
|
|
||||||
|
|
||||||
|
|
||||||
disp:
|
|
||||||
mov rdi,temp ;mov dnum address into edi
|
|
||||||
mov rcx,02 ;initialize ecx with 2
|
|
||||||
dispup1:
|
|
||||||
rol bl,4 ;rotate bl by 4 bits
|
|
||||||
mov dl,bl ;move bl into dl
|
|
||||||
and dl,0fh ;and of dl with 0fh
|
|
||||||
add dl,30h ;add 30h into dl
|
|
||||||
cmp dl,39h ;compare dl with 39h
|
|
||||||
jbe dispskip1 ;jump if below and equal to dispskip1
|
|
||||||
add dl,07h ;add 7h into dl
|
|
||||||
dispskip1:
|
|
||||||
mov [rdi],dl ;mov dl into dnum
|
|
||||||
inc rdi ;increament edi by a byte
|
|
||||||
loop dispup1 ;loop dispup1 while ecx not zero
|
|
||||||
write temp,2 ;Display dnum by calling macro
|
|
||||||
ret ;return from procedure
|
|
||||||
; END OF CODE
|
|
@ -1,94 +0,0 @@
|
|||||||
; THIS CODE HAS BEEN TESTED AND IS FULLY OPERATIONAL.
|
|
||||||
|
|
||||||
; Problem Statement: Write X86/64 ALP to perform non-overlapped block transfer (WITH string specific instructions). Block containing data can be defined in the data segment.
|
|
||||||
|
|
||||||
; Code from Microprocessor (SPPU - Second Year - Computer Engineering - Content) repository on KSKA Git: https://git.kska.io/sppu-se-comp-content/Microprocessor/
|
|
||||||
|
|
||||||
|
|
||||||
; BEGINNING OF CODE
|
|
||||||
%macro print 2
|
|
||||||
mov rax,1 ; Standard output
|
|
||||||
mov rdi,1 ; Input write
|
|
||||||
mov rsi,%1 ; Display message address
|
|
||||||
mov rdx,%2 ; Message length
|
|
||||||
syscall ; Interrupt for kernel in 64-bit
|
|
||||||
%endmacro
|
|
||||||
|
|
||||||
section .data
|
|
||||||
msg db 10, 'Block contents before transfer',10,13 ; Initializing the display message
|
|
||||||
msglen equ $-msg ; Length of the message
|
|
||||||
|
|
||||||
msg2 db 10, 'Block contents after transfer',10,13 ; Initializing the display message
|
|
||||||
msg2len equ $-msg2 ; Length of the message
|
|
||||||
|
|
||||||
msg3 db 10,13, 'Source block'
|
|
||||||
msg3len equ $-msg3
|
|
||||||
|
|
||||||
msg4 db 10,13, 'Destination block'
|
|
||||||
msg4len equ $-msg4
|
|
||||||
|
|
||||||
space db ' ' ; Space between the variables to be displayed
|
|
||||||
spacelen equ $-space ; Initializing length of space
|
|
||||||
|
|
||||||
srcblk db 10h,20h,30h,40h,50h ; Contents of the src block
|
|
||||||
destblk db 0,0,0,0,0 ; Initial contents of dest block
|
|
||||||
cnt equ 5 ; Count is equal to 5 as 5 variables declared
|
|
||||||
|
|
||||||
section .bss ; Storing the array of data/reserving space for the data
|
|
||||||
ans resb 4 ; Reserve buffer ans of 4-bytes(8-bits each)
|
|
||||||
;destblk resb 5 ; Reserve buffer destblk of 5-bytes
|
|
||||||
|
|
||||||
section .text
|
|
||||||
global _start ; Starting of the main program
|
|
||||||
_start:
|
|
||||||
print msg,msglen ; Displaying the msg1
|
|
||||||
mov rsi,srcblk ; Move contents of source blk to rsi
|
|
||||||
call disp_block ; Calling procedure disp_block
|
|
||||||
cld ; Clear direction flag
|
|
||||||
mov rcx,05h ; Move 05h into rcx register
|
|
||||||
mov rsi,srcblk ; Move contents of src block into rsi
|
|
||||||
mov rdi,destblk ; Move contents of dest blok into rdi
|
|
||||||
rep movsb ; Repeat move string byte
|
|
||||||
|
|
||||||
print msg2,msg2len ; Displaying the msg2
|
|
||||||
mov rsi,destblk ; Move contents of destblk into rsi
|
|
||||||
call disp_block ; Calling procedure disp_block
|
|
||||||
mov rax,60 ; Exit system call
|
|
||||||
xor rdi,rdi ; Clearing rdi (by using xor) so that we get 0 in destblk
|
|
||||||
syscall ; Interrupt for kernel in 64-bit
|
|
||||||
|
|
||||||
disp_block: ; Procedure disp_block
|
|
||||||
mov rbp,cnt ; Base pointers
|
|
||||||
|
|
||||||
back:
|
|
||||||
mov al,[rsi] ; Move contents of rsi to al
|
|
||||||
push rsi ; Push contents of rsi
|
|
||||||
call disp_8 ; Calling the disp_8 procedure
|
|
||||||
print space,1 ; Intialize one byte for space
|
|
||||||
pop rsi ; Pop contents of rsi
|
|
||||||
inc rsi ; Increment rsi by 1
|
|
||||||
dec rbp ; Decrement cnt through rbp
|
|
||||||
jnz back ; Jump to loop back if not zero
|
|
||||||
ret ; Return
|
|
||||||
|
|
||||||
disp_8: ; Procedure disp_8
|
|
||||||
mov rsi,ans+1 ; Move the contents of ans buffer into rsi
|
|
||||||
mov rcx,2 ; Move 2 into the rcx register
|
|
||||||
|
|
||||||
back1: ; Loop back1
|
|
||||||
mov rdx,0 ; Clear rdx
|
|
||||||
mov rbx,16 ; Move 16 into rbx register
|
|
||||||
div rbx ; Divide rax register by rbx register
|
|
||||||
cmp dl,09h ; Compare the contents of dl register with 09h
|
|
||||||
jbe add_30 ; If compared value is below (less) than add 30h
|
|
||||||
add dl ,07h ; Add 07h to dl register
|
|
||||||
|
|
||||||
add_30: ; add_30 label
|
|
||||||
add dl,30h ; Add 30h to the contents of dl register
|
|
||||||
mov[rsi],dl ; Move contents of dl into rsi
|
|
||||||
dec rsi ; Decrement rsi
|
|
||||||
dec rcx ; Decrement rcx
|
|
||||||
jnz back1 ; Jump if not zero to loop back1
|
|
||||||
print ans,2 ; Print the result
|
|
||||||
ret ; Return
|
|
||||||
; END OF CODE
|
|
@ -1,101 +0,0 @@
|
|||||||
; THIS CODE HAS BEEN TESTED AND IS FULLY OPERATIONAL.
|
|
||||||
|
|
||||||
; Problem Statement: Write X86/64 ALP to perform non-overlapped block transfer (WITHOUT string specific instructions). Block containing data can be defined in the data segment.
|
|
||||||
|
|
||||||
; Code from Microprocessor (SPPU - Second Year - Computer Engineering - Content) repository on KSKA Git: https://git.kska.io/sppu-se-comp-content/Microprocessor/
|
|
||||||
|
|
||||||
|
|
||||||
; BEGINNING OF CODE
|
|
||||||
%macro print 2
|
|
||||||
mov rax,1
|
|
||||||
mov rdi,1
|
|
||||||
mov rsi,%1
|
|
||||||
mov rdx,%2
|
|
||||||
syscall
|
|
||||||
%endmacro
|
|
||||||
|
|
||||||
section .data
|
|
||||||
m1 db 10,"Source block:",10,13
|
|
||||||
m1len equ $-m1
|
|
||||||
|
|
||||||
m2 db 10,"Destination block after transfer:",10,13
|
|
||||||
m2len equ $-m2
|
|
||||||
|
|
||||||
space db" "
|
|
||||||
spacelen equ $-space
|
|
||||||
|
|
||||||
srcblk db 10h,20h,30h,40h,50h
|
|
||||||
|
|
||||||
count equ 05h
|
|
||||||
|
|
||||||
section .bss
|
|
||||||
ans resb 4
|
|
||||||
dstblk resb 5
|
|
||||||
|
|
||||||
section .text
|
|
||||||
global _start
|
|
||||||
_start:
|
|
||||||
print m1,m1len
|
|
||||||
mov rsi,srcblk
|
|
||||||
call disp_block
|
|
||||||
|
|
||||||
print m2,m2len
|
|
||||||
|
|
||||||
mov rsi,srcblk
|
|
||||||
mov rdi,dstblk
|
|
||||||
mov rcx,05
|
|
||||||
|
|
||||||
s1: mov al,[rsi]
|
|
||||||
mov [rdi],al
|
|
||||||
inc rsi
|
|
||||||
inc rdi
|
|
||||||
loop s1
|
|
||||||
|
|
||||||
mov rsi,dstblk
|
|
||||||
call disp_block
|
|
||||||
|
|
||||||
mov rax,60
|
|
||||||
xor rdi,rdi
|
|
||||||
syscall
|
|
||||||
|
|
||||||
disp_block:
|
|
||||||
mov rbp,count
|
|
||||||
back:mov al,[rsi]
|
|
||||||
push rsi
|
|
||||||
call disp_8
|
|
||||||
print space,1
|
|
||||||
pop rsi
|
|
||||||
inc rsi
|
|
||||||
dec rbp
|
|
||||||
jnz back
|
|
||||||
ret
|
|
||||||
|
|
||||||
disp_8:mov rsi,ans
|
|
||||||
|
|
||||||
mov bl,al
|
|
||||||
mov dl,bl
|
|
||||||
rol dl,04
|
|
||||||
and dl,0fh
|
|
||||||
cmp dl,09h
|
|
||||||
jbe add30
|
|
||||||
add dl,07h
|
|
||||||
|
|
||||||
add30:
|
|
||||||
add dl,30h
|
|
||||||
mov [rsi],dl
|
|
||||||
inc rsi
|
|
||||||
|
|
||||||
mov dl,bl
|
|
||||||
and dl,0fh
|
|
||||||
cmp dl,09h
|
|
||||||
jbe add130
|
|
||||||
add dl,07h
|
|
||||||
|
|
||||||
add130:
|
|
||||||
|
|
||||||
add dl,30h
|
|
||||||
mov [rsi],dl
|
|
||||||
|
|
||||||
print ans,2
|
|
||||||
ret
|
|
||||||
; END OF CODE
|
|
@ -1,85 +0,0 @@
|
|||||||
; THIS CODE HAS BEEN TESTED AND IS FULLY OPERATIONAL.
|
|
||||||
|
|
||||||
; Problem Statement: Write X86/64 ALP to perform overlapped block transfer (WITH string specific instructions). Block containing data can be defined in the data segment.
|
|
||||||
|
|
||||||
; Code from Microprocessor (SPPU - Second Year - Computer Engineering - Content) repository on KSKA Git: https://git.kska.io/sppu-se-comp-content/Microprocessor/
|
|
||||||
|
|
||||||
|
|
||||||
; BEGINNING OF CODE
|
|
||||||
%macro print 2
|
|
||||||
mov rax,1
|
|
||||||
mov rdi,1
|
|
||||||
mov rsi,%1
|
|
||||||
mov rdx,%2
|
|
||||||
syscall
|
|
||||||
%endmacro
|
|
||||||
|
|
||||||
section .data
|
|
||||||
msg1 db 10,"src blk",10,13 ; Initializing the display message
|
|
||||||
msg1len equ $-msg1 ; Initializing the length of message
|
|
||||||
msg2 db 10,"dest blk",10,13
|
|
||||||
msg2len equ $-msg2
|
|
||||||
srcblk db 10h,20h,30h,40h,50h ; Storing variables in source block
|
|
||||||
cnt equ 05h ; Count is equal to 5 as 5 variables declared
|
|
||||||
space db " " ; Space between the variables to be displayed
|
|
||||||
spacelen equ $-space ; Initializing length of space
|
|
||||||
|
|
||||||
section .bss ; Storing the array of data/reserving space for the data
|
|
||||||
ans resb 4 ; Reserve buffer ans of 4-bytes(8-bits each)
|
|
||||||
destblk resb 5 ; Reserve buffer destblk of 5-bytes
|
|
||||||
|
|
||||||
section .text
|
|
||||||
global _start ; Starting of the main program
|
|
||||||
_start:
|
|
||||||
print msg1,msg1len ; Displaying the msg1
|
|
||||||
mov rsi,srcblk ; Move contents of source blk to rsi
|
|
||||||
call disp_block ; Calling procedure disp_block
|
|
||||||
cld ; Clear direction flag
|
|
||||||
mov rcx,02h ; Move 02h into rcx register
|
|
||||||
mov rsi,srcblk ; Move contents of the source blk to the rsi
|
|
||||||
mov rdi,destblk ; Shift 2 positions in the source blk and move the contents into rdi
|
|
||||||
rep movsb ; Repeat move string byte
|
|
||||||
mov rcx,03h ; Move 02h into rcx register
|
|
||||||
mov rsi,srcblk ; Move contents of the source blk to the rsi
|
|
||||||
mov rdi,destblk+2
|
|
||||||
rep movsb
|
|
||||||
print msg2,msg2len ; Displaying the msg2
|
|
||||||
mov rsi,destblk ; Move contents of destblk into rsi
|
|
||||||
call disp_block ; Calling procedure disp_block
|
|
||||||
mov rax,60 ; Exit system call
|
|
||||||
xor rdi,rdi ; Clearing rdi (by using xor) so that we get 0 in destblk
|
|
||||||
syscall ; Interrupt for kernel in 64-bit
|
|
||||||
disp_block: ; Procedure disp_block
|
|
||||||
mov rbp,cnt ; Base pointers
|
|
||||||
back:
|
|
||||||
mov al,[rsi] ; Move contents of rsi to al
|
|
||||||
push rsi ; Push contents of rsi
|
|
||||||
call disp_8 ; Calling the disp_8 procedure
|
|
||||||
print space,1 ; Initialize one byte for space
|
|
||||||
pop rsi ; Pop contents of rsi
|
|
||||||
inc rsi ; Increment rsi by 1
|
|
||||||
dec rbp ; Decrement cnt through rbp
|
|
||||||
jnz back ; Jump to loop back if not zero
|
|
||||||
ret ; Return
|
|
||||||
|
|
||||||
disp_8: ; Procedure disp_8
|
|
||||||
mov rsi,ans+1 ; Move the contents of ans buffer into rsi
|
|
||||||
mov rcx,2 ; Move 2 into the rcx register
|
|
||||||
|
|
||||||
back1: ; Loop back1
|
|
||||||
mov rdx,0 ; Clear rdx
|
|
||||||
mov rbx,16 ; Move 16 into rbx register
|
|
||||||
div rbx ; Divide rax register by rbx register
|
|
||||||
cmp dl,09h ; Compare the contents of dl register with 09h
|
|
||||||
jbe add_30 ; If compared value is below (less) than add 30h
|
|
||||||
add dl ,07h ; Add 07h to dl register
|
|
||||||
|
|
||||||
add_30: ; Add_30 label
|
|
||||||
add dl,30h ; Add 30h to the contents of dl register
|
|
||||||
mov[rsi],dl ; Move contents of dl into rsi
|
|
||||||
dec rsi ; Decrement rsi
|
|
||||||
dec rcx ; Decrement rcx
|
|
||||||
jnz back1 ; Jump if not zero to loop back1
|
|
||||||
print ans,2 ; Print the result
|
|
||||||
ret
|
|
||||||
; END OF CODE
|
|
@ -1,110 +0,0 @@
|
|||||||
; THIS CODE HAS BEEN TESTED AND IS FULLY OPERATIONAL.
|
|
||||||
|
|
||||||
; Problem Statement: Write X86/64 ALP to perform overlapped block transfer (WITHOUT string specific instructions). Block containing data can be defined in the data segment.
|
|
||||||
|
|
||||||
; Code from Microprocessor (SPPU - Second Year - Computer Engineering - Content) repository on KSKA Git: https://git.kska.io/sppu-se-comp-content/Microprocessor/
|
|
||||||
|
|
||||||
|
|
||||||
; BEGINNING OF CODE
|
|
||||||
%macro print 2 ; Defined macro for printing messages 2 stand for the parameters
|
|
||||||
mov rax,1 ; For system write specifier
|
|
||||||
mov rdi,1 ; Standard output
|
|
||||||
mov rsi,%1
|
|
||||||
mov rdx,%2
|
|
||||||
syscall
|
|
||||||
%endmacro
|
|
||||||
|
|
||||||
section .data
|
|
||||||
m1 db 10,"source block",10,13 ; 10 stands for new line and 13 stands for tab
|
|
||||||
m1len equ $-m1
|
|
||||||
|
|
||||||
m2 db 10,"destination block after transfer:",10,13
|
|
||||||
m2len equ $-m2
|
|
||||||
|
|
||||||
space db " "
|
|
||||||
spacelen equ $-space
|
|
||||||
|
|
||||||
srcblk db 10h,20h,30h,40h,50h ; srcblk defined for the functioning
|
|
||||||
count equ 05h ; count initialized to 5
|
|
||||||
|
|
||||||
section .bss
|
|
||||||
ans resb 4 ; ans block is defined for storing the transformed value of the numbers from hexa to ascii
|
|
||||||
dstblk resb 5 ; dstblk is our destination block
|
|
||||||
|
|
||||||
section .text ; This section is necessary for assembler understanding
|
|
||||||
global _start
|
|
||||||
_start:
|
|
||||||
print m1,m1len
|
|
||||||
mov rsi,srcblk ; rsi now points to the first location of the source block
|
|
||||||
call disp_block ; Calling the procedure for displaying the source block
|
|
||||||
|
|
||||||
print m2,m2len
|
|
||||||
|
|
||||||
mov rsi,srcblk ; Now the rsi points to the source block
|
|
||||||
mov rdi,dstblk ; Now the destination pointer points to the first memory location of the destination block
|
|
||||||
mov rcx,02 ; rcx is the register used for the counter purpose
|
|
||||||
|
|
||||||
s1: mov al,[rsi]
|
|
||||||
mov [rdi],al
|
|
||||||
inc rsi
|
|
||||||
inc rdi
|
|
||||||
loop s1
|
|
||||||
mov rsi,srcblk
|
|
||||||
mov rcx,03
|
|
||||||
|
|
||||||
s2: mov al,[rsi]
|
|
||||||
mov [rdi],al
|
|
||||||
inc rsi
|
|
||||||
inc rdi
|
|
||||||
loop s2
|
|
||||||
|
|
||||||
mov rsi,dstblk
|
|
||||||
call disp_block
|
|
||||||
|
|
||||||
mov rax,60
|
|
||||||
xor rdi,rdi
|
|
||||||
syscall
|
|
||||||
|
|
||||||
disp_block:
|
|
||||||
mov rbp,count
|
|
||||||
|
|
||||||
back:
|
|
||||||
mov al,[rsi]
|
|
||||||
push rsi
|
|
||||||
call disp_8
|
|
||||||
print space,1
|
|
||||||
pop rsi
|
|
||||||
inc rsi
|
|
||||||
dec rbp
|
|
||||||
jnz back
|
|
||||||
ret
|
|
||||||
|
|
||||||
disp_8:
|
|
||||||
mov rsi,ans
|
|
||||||
|
|
||||||
mov bl,al
|
|
||||||
mov dl,bl
|
|
||||||
rol dl,04
|
|
||||||
and dl,0fh
|
|
||||||
cmp dl,09h
|
|
||||||
jbe add30
|
|
||||||
add dl,07h
|
|
||||||
|
|
||||||
add30:
|
|
||||||
add dl,30h
|
|
||||||
mov [rsi],dl
|
|
||||||
inc rsi
|
|
||||||
|
|
||||||
mov dl,bl
|
|
||||||
and dl,0fh
|
|
||||||
cmp dl,09h
|
|
||||||
jbe add130
|
|
||||||
add dl,07h
|
|
||||||
|
|
||||||
add130:
|
|
||||||
add dl,30h
|
|
||||||
mov [rsi],dl
|
|
||||||
|
|
||||||
print ans,2
|
|
||||||
ret
|
|
||||||
; END OF CODE
|
|
@ -1,119 +0,0 @@
|
|||||||
; THIS CODE HAS NOT BEEN TESTED AND IS NOT FULLY OPERATIONAL.
|
|
||||||
|
|
||||||
; Problem Statement: Write X86/64 ALP to perform multiplication of two 8-bit hexadecimal numbers. Using successive addition method. (Use of 64-bit registers is expected).
|
|
||||||
|
|
||||||
; Code from Microprocessor (SPPU - Second Year - Computer Engineering - Content) repository on KSKA Git: https://git.kska.io/sppu-se-comp-content/Microprocessor/
|
|
||||||
|
|
||||||
|
|
||||||
; BEGINNING OF CODE
|
|
||||||
%macro print 2
|
|
||||||
mov rax,1
|
|
||||||
mov rdi,1
|
|
||||||
mov rsi,%1
|
|
||||||
mov rdx,%2
|
|
||||||
syscall
|
|
||||||
%endmacro
|
|
||||||
|
|
||||||
%macro accept 2
|
|
||||||
mov rax,0
|
|
||||||
mov rdi,0
|
|
||||||
mov rsi,%1
|
|
||||||
mov rdx,%2
|
|
||||||
syscall
|
|
||||||
%endmacro
|
|
||||||
|
|
||||||
section .data
|
|
||||||
|
|
||||||
m1 db 10,"----- Multiplication using successive addition -----",10,13
|
|
||||||
l1 equ $-m1
|
|
||||||
|
|
||||||
m2 db 10,"Enter the multiplicand",10,13
|
|
||||||
l2 equ $-m2
|
|
||||||
|
|
||||||
m3 db 10,"Enter the multiplier",10,13
|
|
||||||
l3 equ $-m3
|
|
||||||
|
|
||||||
res db 10,"Multiplication of the numbers is::",10,13
|
|
||||||
rlen equ $-res
|
|
||||||
|
|
||||||
|
|
||||||
section .bss
|
|
||||||
|
|
||||||
numascii resb 03
|
|
||||||
mplier resq 02
|
|
||||||
mcand resq 02
|
|
||||||
;result resq 01
|
|
||||||
dispbuff resb 04
|
|
||||||
|
|
||||||
section .txt
|
|
||||||
global _start:
|
|
||||||
_start:
|
|
||||||
|
|
||||||
print m1,l1
|
|
||||||
|
|
||||||
print m2,l2
|
|
||||||
accept numascii,3
|
|
||||||
call packnum
|
|
||||||
mov byte[mcand],bl
|
|
||||||
|
|
||||||
print m3,l3
|
|
||||||
accept numascii,3
|
|
||||||
call packnum
|
|
||||||
mov byte[mplier],bl
|
|
||||||
|
|
||||||
print res,rlen
|
|
||||||
|
|
||||||
mov rax,0
|
|
||||||
cmp qword[mplier],0
|
|
||||||
jz ll5
|
|
||||||
|
|
||||||
ll1:
|
|
||||||
add rax,qword[mcand]
|
|
||||||
dec qword[mplier]
|
|
||||||
jnz ll1
|
|
||||||
|
|
||||||
ll5:
|
|
||||||
call dispnum
|
|
||||||
|
|
||||||
exit:
|
|
||||||
mov rax,60
|
|
||||||
mov rbx,00
|
|
||||||
syscall
|
|
||||||
|
|
||||||
|
|
||||||
dispnum:
|
|
||||||
mov rbx,rax
|
|
||||||
mov rcx,04
|
|
||||||
mov rdi,dispbuff
|
|
||||||
up2:
|
|
||||||
rol bx,4
|
|
||||||
mov al,bl
|
|
||||||
and al,0fh
|
|
||||||
cmp al,09
|
|
||||||
jbe dskip
|
|
||||||
add al,07h
|
|
||||||
dskip:
|
|
||||||
add al,30h
|
|
||||||
mov [rdi],al
|
|
||||||
inc rdi
|
|
||||||
loop up2
|
|
||||||
print dispbuff,4
|
|
||||||
ret
|
|
||||||
|
|
||||||
|
|
||||||
packnum:
|
|
||||||
mov bl,0
|
|
||||||
mov rcx,2
|
|
||||||
mov rsi,numascii
|
|
||||||
up1:
|
|
||||||
rol bl,04
|
|
||||||
mov al,[rsi]
|
|
||||||
cmp al,39h
|
|
||||||
jbe skip1
|
|
||||||
sub al,07h
|
|
||||||
skip1:
|
|
||||||
sub al,30h
|
|
||||||
add bl,al
|
|
||||||
inc rsi
|
|
||||||
loop up1
|
|
||||||
ret
|
|
@ -1,186 +0,0 @@
|
|||||||
; THIS CODE HAS BEEN TESTED AND IS FULLY OPERATIONAL.
|
|
||||||
|
|
||||||
; Problem Statement: Write X86/64 ALP to perform multiplication of two 8-bit hexadecimal numbers. Using add and shift method. (Use of 64-bit registers is expected).
|
|
||||||
|
|
||||||
; Code from Microprocessor (SPPU - Second Year - Computer Engineering - Content) repository on KSKA Git: https://git.kska.io/sppu-se-comp-content/Microprocessor/
|
|
||||||
|
|
||||||
|
|
||||||
; BEGINNING OF CODE
|
|
||||||
%macro dispmsg 2 ;macro for display
|
|
||||||
mov rax,1 ;standard ouput
|
|
||||||
mov rdi,1 ;system for write
|
|
||||||
mov rsi,%1 ;display message address
|
|
||||||
mov rdx,%2 ;display message length
|
|
||||||
syscall ;interrupt for 64-bit
|
|
||||||
%endmacro ;close macro
|
|
||||||
|
|
||||||
%macro exitprog 0 ;macro for exit
|
|
||||||
mov rax,60 ;system for exit
|
|
||||||
mov rdx,0
|
|
||||||
syscall ;interrupt for 64-bit
|
|
||||||
%endmacro ;close macro
|
|
||||||
|
|
||||||
%macro gtch 1 ;macro for accept
|
|
||||||
mov rax,0 ;standard input
|
|
||||||
mov rdi,0 ;system for read
|
|
||||||
mov rsi,%1 ;input the message
|
|
||||||
mov rdx,1 ;message length
|
|
||||||
syscall ;interrupt for 64-bit
|
|
||||||
%endmacro ;close macro
|
|
||||||
|
|
||||||
;------------------------------
|
|
||||||
section .data
|
|
||||||
nwline db 10
|
|
||||||
m0 db 10,10,"Program to multiply two numbers using successive addition and add-and-shift method"
|
|
||||||
l0 equ $-m0
|
|
||||||
m1 db 10,"1. Add-and-Shift method",10,"2. Exit",10,10, "Choose an option (1/2 <ENTER>): "
|
|
||||||
l1 equ $-m1
|
|
||||||
m2 db 10,"Enter multiplicand (2 digit HEX no): "
|
|
||||||
l2 equ $-m2
|
|
||||||
m3 db 10,"Enter multiplier (2 digit HEX no): "
|
|
||||||
l3 equ $-m3
|
|
||||||
m4 db 10,"Multiplication is: "
|
|
||||||
l4 equ $-m4
|
|
||||||
;------------------------------
|
|
||||||
|
|
||||||
;------------------------------
|
|
||||||
section .bss
|
|
||||||
mcand resq 1 ;reserve 1 quad for multiplicand
|
|
||||||
mplier resq 1 ;reserve 1 quad for multiplier
|
|
||||||
input resb 1 ;reserve 1 byte for input
|
|
||||||
output resb 1 ;reserve 1 byte for output
|
|
||||||
choice resb 1 ;reserve 1 byte for choice
|
|
||||||
;------------------------------
|
|
||||||
|
|
||||||
;------------------------------
|
|
||||||
section .text
|
|
||||||
global _start ;starting of main program
|
|
||||||
_start :
|
|
||||||
|
|
||||||
dispmsg m0,l0 ;displaying the menu
|
|
||||||
|
|
||||||
back:
|
|
||||||
dispmsg m1,l1 ;displaying the first message
|
|
||||||
gtch input ;to read and discard ENTER key pressed.
|
|
||||||
|
|
||||||
mov al, byte[input] ;get choice
|
|
||||||
mov byte[choice],al
|
|
||||||
|
|
||||||
gtch input ;to read and discard ENTER key pressed.
|
|
||||||
|
|
||||||
mov al, byte[choice]
|
|
||||||
|
|
||||||
cmp al, '1' ;compare contents of al with 1
|
|
||||||
je shft_add ;if equal the jump to succ_add procedure
|
|
||||||
|
|
||||||
cmp al, '2' ;compare the contents of al with 3
|
|
||||||
jnz back ;if not zero then jump to back
|
|
||||||
exitprog ;exit program
|
|
||||||
;------------------------------
|
|
||||||
|
|
||||||
;-------- ADD & SHIFT ---------
|
|
||||||
shft_add: ;shft_add procedure
|
|
||||||
dispmsg m2,l2 ;Displaying the second message
|
|
||||||
call getnum ;call getnum procedure
|
|
||||||
mov [mcand],rax ;mov contents of rax(multiplicand) into mcand buffer
|
|
||||||
gtch input ;to read and discard ENTER key pressed
|
|
||||||
|
|
||||||
dispmsg m3,l3 ;Displaying the third message
|
|
||||||
call getnum ;call getnum procedure
|
|
||||||
mov [mplier],rax ;mov contents of rax(multiplier) into mplier buffer
|
|
||||||
gtch input ;to read and discard ENTER key pressed
|
|
||||||
|
|
||||||
mov rax,0 ;clearing the rax register
|
|
||||||
dispmsg m4,l4 ;displaying the fourth message
|
|
||||||
|
|
||||||
mov rax,0 ;clearing the rax register
|
|
||||||
mov rcx,8 ;taking count of 8 in rcx register
|
|
||||||
mov dl,[mplier] ;multiplier is 8 bits so it occupies dl
|
|
||||||
mov bl,[mcand] ;mupltiplicand is 8 bits so it occupies bl
|
|
||||||
|
|
||||||
;we will put Q in higher 8 bits of ax (i.e. ah)
|
|
||||||
;and multipler in lower 8 bits of ax (i.e. al)
|
|
||||||
|
|
||||||
mov ah,0 ;clearing ah register
|
|
||||||
mov al,dl ;ah already 0 and al now contains multiplier
|
|
||||||
|
|
||||||
;------------------------------
|
|
||||||
|
|
||||||
ll3: ;loop 3 (s3)
|
|
||||||
mov dh,al ;mov contents of al into dh as dh is used as temporary
|
|
||||||
and dh,1 ;check d0 bit of multiplier
|
|
||||||
jz ll8 ;if d0 bit was zero, Z flag will be set (s2)(if zero jmp to loop 8)
|
|
||||||
add ah, bl ;d0 bit of multiplier is set
|
|
||||||
;so add multiplicand to Q(add bl into ah)
|
|
||||||
|
|
||||||
;------------------------------
|
|
||||||
|
|
||||||
ll8: ;loop 8 (s2)
|
|
||||||
shr ax,1 ;shift both Q (ah) and muplitiplier (al) right 1 bit
|
|
||||||
dec rcx ;decrement contents of rcx
|
|
||||||
jnz ll3 ;if not zero then jump to loop 3 (s3)
|
|
||||||
call disphx16 ;call procedure disphx16
|
|
||||||
jmp back ;jump to back
|
|
||||||
|
|
||||||
;------------------------------
|
|
||||||
|
|
||||||
getnum: ;procedure to get a 2 digit hex no from user
|
|
||||||
; number returned in rax
|
|
||||||
|
|
||||||
mov cx,0204h ;02 digits to display and 04 count to rotate
|
|
||||||
mov rbx,0 ;clearing rbx register
|
|
||||||
|
|
||||||
;------------------------------
|
|
||||||
|
|
||||||
ll2: ;loop 2
|
|
||||||
push rcx ;syscall destroys rcx.Rest all regs are preserved
|
|
||||||
gtch input ;to read and discard ENTER key pressed
|
|
||||||
pop rcx ;pop the contents of rcx
|
|
||||||
|
|
||||||
mov rax,0 ;clearing the contents of rax
|
|
||||||
mov al,byte[input] ;get choice
|
|
||||||
sub rax,30h ;subtract 30h from contents of rax
|
|
||||||
cmp rax,09h ;compare the contents of rax register with 09h
|
|
||||||
jbe skip1 ;if equal then jump below to skip1 label
|
|
||||||
sub rax,7 ;subtract 7 from contents of rax register
|
|
||||||
|
|
||||||
;------------------------------
|
|
||||||
|
|
||||||
skip1: ;skip1 label
|
|
||||||
shl rbx,cl ;shift multiplicand and count to the left
|
|
||||||
add rbx,rax ;add contents of rax register to the contents of rbx register
|
|
||||||
dec ch ;decrement the contents of ch register
|
|
||||||
jnz ll2 ;if not zero then jump to loop 2
|
|
||||||
mov rax,rbx ;mov contents of rbx register into rax register
|
|
||||||
ret ;return
|
|
||||||
|
|
||||||
;------------------------------
|
|
||||||
|
|
||||||
disphx16: ;Displays a 16 digit hex number passed in rax
|
|
||||||
mov rbx,rax ;move contents of rax register into rbx register
|
|
||||||
mov cx,1004h ;16 digits to display and 04 count to rotate
|
|
||||||
|
|
||||||
;------------------------------
|
|
||||||
|
|
||||||
ll6: ;loop 6
|
|
||||||
rol rbx,cl ;rotate multiplicand and count to the left
|
|
||||||
mov rdx,rbx ;mov contents of rbx register into rdx register
|
|
||||||
and rdx,0fh ;anding contents of rdx register with 0fh
|
|
||||||
add rdx,30h ;adding contents of rdx register with 30h
|
|
||||||
cmp rdx,039h ;comparing the contents of rdx register with 39h
|
|
||||||
jbe skip4 ;if equal then jump below to skip4 label
|
|
||||||
add rdx,7 ;add 7 to the contents of rdx register
|
|
||||||
|
|
||||||
;------------------------------
|
|
||||||
|
|
||||||
skip4: ;skip4 label
|
|
||||||
mov byte[output],dl ;mov contents of dl register into output buffer in bytes
|
|
||||||
push rcx ;push the contents of rcx register
|
|
||||||
dispmsg output,1 ;displaying the output
|
|
||||||
pop rcx ;pop the contents of rcx
|
|
||||||
dec ch ;decrement the count(contents of ch)
|
|
||||||
jnz ll6 ;if not zero the jump to loop 6
|
|
||||||
ret ;return
|
|
||||||
|
|
||||||
;------------------------------
|
|
||||||
; END OF CODE
|
|
@ -1,5 +0,0 @@
|
|||||||
# CODES NOT HERE?
|
|
||||||
|
|
||||||
There are some codes that haven't been tested yet available in the [testing branch](https://git.kska.io/sppu-se-comp-content/Microprocessor/src/branch/testing), check it out, you might find 'em!
|
|
||||||
|
|
||||||
---
|
|
@ -1,13 +0,0 @@
|
|||||||
# DISCLAIMER
|
|
||||||
|
|
||||||
Disclaimer for [Microprocessor](https://git.kska.io/sppu-se-comp-content/Microprocessor) repository under [sppu-se-comp-content](https://git.kska.io/sppu-se-comp-content) organization.
|
|
||||||
|
|
||||||
---
|
|
||||||
|
|
||||||
- Please be advised that this repository ([Microprocessor](https://git.kska.io/sppu-se-comp-content/Microprocessor)), its organization ([sppu-se-comp-content](https://git.kska.io/sppu-se-comp-content)), and all of its content are entirely independent and not associated to, and/or affiliated with SPPU (Savitrbai Phule Pune University, Pune) and/or any of its colleges, nor with [KSKA Git](https://git.kska.io). The materials provided within, including assignments from our contributors and notes from our professors, are solely for educational purposes and convenience.
|
|
||||||
|
|
||||||
- KSKA Git serves merely as a platform for this content and does not imply any association and/or endorsement from SPPU or KSKA Git. It is important to recognize that the organization (sppu-se-comp-content) and all of its repositories in KSKA Git operates independently, and any references to educational institutions or platforms are purely for informational clarity.
|
|
||||||
|
|
||||||
- Furthermore, it is emphasized that the content available within this repository remains meticulously curated to align with the latest 2019 SPPU syllabus for computer engineering. Our commitment to accuracy ensures that the materials provided reflect the current academic standards prescribed by SPPU, offering students a reliable resource to supplement their studies.
|
|
||||||
|
|
||||||
---
|
|
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
@ -1,5 +0,0 @@
|
|||||||
#### NOTE: These pdf files contain printable version of codes with outputs. The assignment number matches with the assignments in [Handouts folder](https://git.kska.io/sppu-se-comp-content/Microprocessor/src/branch/main/Handouts/).
|
|
||||||
|
|
||||||
> All the pdfs in this folder have been optimized to ensure it takes up least pages.
|
|
||||||
|
|
||||||
##### You can find the codes in [Codes folder](https://git.kska.io/sppu-se-comp-content/Microprocessor/src/branch/main/Codes/).
|
|
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
103
README.md
103
README.md
@ -1,103 +0,0 @@
|
|||||||
# Microprocessor (MP)
|
|
||||||
|
|
||||||
Microprocessor, a comprehensive Git repository tailored for SPPU Computer Engineering students. Dive deep into the 80386 DX processor, mastering assembly language programming, debugging, and testing techniques. Access notes, assignments, question papers, and a wide range of resources to strengthen your grasp on advanced processor systems.
|
|
||||||
|
|
||||||
---
|
|
||||||
|
|
||||||
## Index
|
|
||||||
|
|
||||||
### Codes
|
|
||||||
- [Practical 1 - Count number of positive and negative numbers from the array](https://git.kska.io/sppu-se-comp-content/Microprocessor/src/branch/main/Codes/Practical-1.asm)
|
|
||||||
- Practical 3 - Non-overlapped block transfer:
|
|
||||||
- [Practical 3.1 - Non-overlapped block transfer (WITH string specific instructions)](https://git.kska.io/sppu-se-comp-content/Microprocessor/src/branch/main/Codes/Practical-3.1%20%28with%20string%29.asm)
|
|
||||||
- [Practical 3.2 - Non-overlapped block transfer (WITHOUT string specific instructions)](https://git.kska.io/sppu-se-comp-content/Microprocessor/src/branch/main/Codes/Practical-3.2%20%28without%20string%29.asm)
|
|
||||||
- Practical 4 - Overlapped block transfer:
|
|
||||||
- [Practical 4.1 - Overlapped block transfer (WITH string specific instructions)](https://git.kska.io/sppu-se-comp-content/Microprocessor/src/branch/main/Codes/Practical-4.1%20%28with%20string%29.asm)
|
|
||||||
- [Practical 4.2 - Overlapped block transfer (WITHOUT string specific instructions)](https://git.kska.io/sppu-se-comp-content/Microprocessor/src/branch/main/Codes/Practical-4.2%20%28without%20string%29.asm)
|
|
||||||
- Practical 5 - Multiplication of two 8-bit hexadecimal numbers:
|
|
||||||
- [Practical 5.1 - Multiplication of two 8-bit hexadecimal numbers (successive addition method)](https://git.kska.io/sppu-se-comp-content/Microprocessor/src/branch/main/Codes/Practical-5.1%20%28successive%20addition%29.asm)
|
|
||||||
- [Practical 5.2 - Multiplication of two 8-bit hexadecimal numbers (add and shift method)](https://git.kska.io/sppu-se-comp-content/Microprocessor/src/branch/main/Codes/Practical-5.2%20%28add%20and%20shift%20method%29.asm)
|
|
||||||
- [Practical-10 - Switch from real mode to protected mode and display the values of GDTR, LDTR, IDTR, TR and MSW Registers. Identify CPU type using CPUID instruction.](https://git.kska.io/sppu-se-comp-content/Microprocessor/src/branch/main/Codes/Practical-10.asm)
|
|
||||||
- [Practical-11 - Factorial of a given integer number with explicit stack manipulation](https://git.kska.io/sppu-se-comp-content/Microprocessor/src/branch/main/Codes/Practical-11.asm)
|
|
||||||
- [Practical-12 - Obtain: i) Mean ii) Variance iii) Standard Deviation. Define the input values in data segment](https://git.kska.io/sppu-se-comp-content/Microprocessor/src/branch/main/Codes/Practical-12.asm)
|
|
||||||
- [Practical-13 - Find the roots of the quadratic equation](https://git.kska.io/sppu-se-comp-content/Microprocessor/src/branch/main/Codes/Practical-13.asm)
|
|
||||||
|
|
||||||
> Checkout [testing branch](https://git.kska.io/sppu-se-comp-content/Microprocessor/src/branch/testing) for rest of the codes.
|
|
||||||
|
|
||||||
#### Steps to run these codes:
|
|
||||||
1. Assemble the code (using NASM (Netwide Assembler), MASM (Microsoft Macro Assembler) or TASM (Turbo Assembler)):
|
|
||||||
```shell
|
|
||||||
nasm -f elf64 yourProgram.asm -o yourProgram.o
|
|
||||||
```
|
|
||||||
2. Link the object file (using `ld` on Linux or `link` on Windows):
|
|
||||||
```shell
|
|
||||||
ld -o yourProgram yourProgram.o
|
|
||||||
```
|
|
||||||
3. Run the executable:
|
|
||||||
```shell
|
|
||||||
./yourProgram
|
|
||||||
```
|
|
||||||
|
|
||||||
> For Windows: `.\yourProgram`
|
|
||||||
|
|
||||||
|
|
||||||
### Notes
|
|
||||||
- [END-SEM Notes](https://git.kska.io/sppu-se-comp-content/Microprocessor/src/branch/main/Notes/MP%20-%20END-SEM%20Notes.pdf)
|
|
||||||
1. [Unit 1 - 80386DX- Basic Programming Model and Applications Instruction Set](https://git.kska.io/sppu-se-comp-content/Microprocessor/src/branch/main/Notes/Unit%201)
|
|
||||||
2. [Unit 2 - Systems Architecture and Memory Management](https://git.kska.io/sppu-se-comp-content/Microprocessor/src/branch/main/Notes/Unit%202)
|
|
||||||
3. [Unit 3 - Protection and Multitasking](https://git.kska.io/sppu-se-comp-content/Microprocessor/src/branch/main/Notes/Unit%203)
|
|
||||||
4. [Unit 4 - Input-Output, Exceptions and Interrupts](https://git.kska.io/sppu-se-comp-content/Microprocessor/src/branch/main/Notes/Unit%204)
|
|
||||||
5. [Unit 5 - Initialization of 80386DX, Debugging and Virtual 8086 Mode](https://git.kska.io/sppu-se-comp-content/Microprocessor/src/branch/main/Notes/Unit%205)
|
|
||||||
6. [Unit 6 - 80387 Coprocessor and Introduction](https://git.kska.io/sppu-se-comp-content/Microprocessor/src/branch/main/Notes/Unit%206)
|
|
||||||
|
|
||||||
### Handouts
|
|
||||||
|
|
||||||
- [Solutions for all 10 assignments.](https://git.kska.io/sppu-se-comp-content/Microprocessor/src/branch/main/Handouts/0-MPL%20-%20All%2010%20Assignments%20%28Solutions%29.pdf)
|
|
||||||
|
|
||||||
1. [Assignment 1 - Display accepted numbers](https://git.kska.io/sppu-se-comp-content/Microprocessor/src/branch/main/Handouts/MPL%20-%20Assignment%201.pdf)
|
|
||||||
2. [Assignment 2 - String length calculation](https://git.kska.io/sppu-se-comp-content/Microprocessor/src/branch/main/Handouts/MPL%20-%20Assignment%202.pdf)
|
|
||||||
3. [Assignment 3 - Find the largest of given number](https://git.kska.io/sppu-se-comp-content/Microprocessor/src/branch/main/Handouts/MPL%20-%20Assignment%203.pdf)
|
|
||||||
4. [Assignment 4 - Arithmatic operations](https://git.kska.io/sppu-se-comp-content/Microprocessor/src/branch/main/Handouts/MPL%20-%20Assignment%204.pdf)
|
|
||||||
5. [Assignment 5 - Count number of positive and negative numbers](https://git.kska.io/sppu-se-comp-content/Microprocessor/src/branch/main/Handouts/MPL%20-%20Assignment%205.pdf)
|
|
||||||
- [Print code & output](https://git.kska.io/sppu-se-comp-content/Microprocessor/src/branch/main/Printable%20codes%20&%20outputs/Assignment-5%20%28code%20and%20output%29.pdf)
|
|
||||||
6. [Assignment 6 - Switch from real mode to protected mode and display the values of GDTR, LDTR, IDTR, TR and MSW Registers](https://git.kska.io/sppu-se-comp-content/Microprocessor/src/branch/main/Handouts/MPL%20-%20Assignment%206.pdf)
|
|
||||||
- [Print code & output](https://git.kska.io/sppu-se-comp-content/Microprocessor/src/branch/main/Printable%20codes%20&%20outputs/Assignment-6%20%28code%20and%20output%29.pdf)
|
|
||||||
7. [Assignment 7 - Non-overlapping block data transfer](https://git.kska.io/sppu-se-comp-content/Microprocessor/src/branch/main/Handouts/MPL%20-%20Assignment%207.pdf)
|
|
||||||
- [Print code & output](https://git.kska.io/sppu-se-comp-content/Microprocessor/src/branch/main/Printable%20codes%20&%20outputs/Assignment-7%20%28code%20and%20output%29.pdf)
|
|
||||||
8. [Assignment 8 - Overlapping block data transfer](https://git.kska.io/sppu-se-comp-content/Microprocessor/src/branch/main/Handouts/MPL%20-%20Assignment%208.pdf)
|
|
||||||
- [Print code & output](https://git.kska.io/sppu-se-comp-content/Microprocessor/src/branch/main/Printable%20codes%20&%20outputs/Assignment-8%20%28code%20and%20output%29.pdf)
|
|
||||||
9. [Assignment 9 - Analyze the difference between near and far procedure to find number of lines, blank spaces & occurance of character](https://git.kska.io/sppu-se-comp-content/Microprocessor/src/branch/main/Handouts/MPL%20-%20Assignment%209.pdf)
|
|
||||||
10. [Assignment 10 - Study assignment](https://git.kska.io/sppu-se-comp-content/Microprocessor/src/branch/main/Handouts/MPL%20-%20Assignment%2010.pdf)
|
|
||||||
11. [Assignment Addition](https://git.kska.io/sppu-se-comp-content/Microprocessor/src/branch/main/Handouts/MPL%20-%20Assignment%20Addition.pdf)
|
|
||||||
12. [Assignment Factorial](https://git.kska.io/sppu-se-comp-content/Microprocessor/src/branch/main/Handouts/MPL%20%20-%20Assignment%20Factorial.pdf)
|
|
||||||
- [Print code & output](https://git.kska.io/sppu-se-comp-content/Microprocessor/src/branch/main/Printable%20codes%20&%20outputs/Assignment%20-%20Factorial%20%28code%20and%20output%29.pdf)
|
|
||||||
|
|
||||||
### Question Papers
|
|
||||||
> All question papers are based on 2019 pattern.
|
|
||||||
- [IN-SEM](https://git.kska.io/sppu-se-comp-content/Microprocessor/src/branch/main/Question%20Papers/IN-SEM)
|
|
||||||
- [END-SEM](https://git.kska.io/sppu-se-comp-content/Microprocessor/src/branch/main/Question%20Papers/END-SEM)
|
|
||||||
|
|
||||||
### Question Banks
|
|
||||||
- [Unit 1 and Unit 2](https://git.kska.io/sppu-se-comp-content/Microprocessor/src/branch/main/Question%20Banks/Microprocessor%20Unit%201%20and%202%20Question%20Bank%20.pdf)
|
|
||||||
- [Unit 3 to Unit 6](https://git.kska.io/sppu-se-comp-content/Microprocessor/src/branch/main/Question%20Banks/Microprocessor%20-%20Important%20Questions%20%28Unit%203%20to%206%29.pdf)
|
|
||||||
- [Oral (Viva) Examination Question Bank (from sir)](https://git.kska.io/sppu-se-comp-content/Microprocessor/src/branch/main/Question%20Banks/Microprocessor%20-%20Oral%20%28Viva%29%20Examination%20Question%20Bank.pdf)
|
|
||||||
|
|
||||||
## Miscellaneous
|
|
||||||
|
|
||||||
**-> Disclaimer:** Please read the [DISCLAIMER](https://git.kska.io/sppu-se-comp-content/Microprocessor/src/branch/main/DISCLAIMER.md) file for important information regarding the contents of this repository.
|
|
||||||
|
|
||||||
**-> Note:** All the codes, handout solutions, printable codes & outputs, question papers and some notes have been provided by us, i.e. our contributors. You are free to use this content however you want, without any restrictions. Content such as lab handouts, notes and question banks have been provided by our professors, thus to use them for anything other than education purposes, please contact them.
|
|
||||||
|
|
||||||
**-> Maintained by:**
|
|
||||||
- [TanmaySpamzzz](https://git.kska.io/TanmaySpamzzz)
|
|
||||||
- [notkshitij](https://git.kska.io/notkshitij)
|
|
||||||
|
|
||||||
**->** Repository icon from [Icons8](https://icons8.com).
|
|
||||||
|
|
||||||
**-> Keywords:**
|
|
||||||
|
|
||||||
SPPU, Savitribai Phule Pune University, Pune University, Computer Engineering, COMP, Second Year, SE, Semester 4, SEM-4, Syllabus, Microprocessor, MP, content, notes, write-ups, assignments, previous years' question papers, question banks,
|
|
||||||
|
|
||||||
Previous main branch has been pruned. [Click here to view old commits](https://git.kska.io/sppu-se-comp-content/Microprocessor/src/branch/main/git-commit-logs.txt).
|
|
||||||
|
|
||||||
---
|
|
@ -1,281 +0,0 @@
|
|||||||
commit 17dc78c5c425639faf3be70be3e3c19a0d8d5adc
|
|
||||||
Author: Kshitij <REDACTED_EMAIL>
|
|
||||||
Date: Tue May 14 13:55:55 2024 +0530
|
|
||||||
|
|
||||||
added end sem notes
|
|
||||||
|
|
||||||
commit 776497e34b8ce19f117bd31b020eb48883313df1
|
|
||||||
Author: Kshitij <REDACTED_EMAIL>
|
|
||||||
Date: Thu May 2 00:19:03 2024 +0530
|
|
||||||
|
|
||||||
fixed readme
|
|
||||||
|
|
||||||
commit 4171fa1f7750f58684f03bad99306c227ac6e305
|
|
||||||
Author: Kshitij <REDACTED_EMAIL>
|
|
||||||
Date: Thu May 2 00:17:10 2024 +0530
|
|
||||||
|
|
||||||
added u6 notes
|
|
||||||
|
|
||||||
commit 21f5025b8755bfe5496f19799a24b319f95ca484
|
|
||||||
Author: Kshitij <REDACTED_EMAIL>
|
|
||||||
Date: Thu May 2 00:08:47 2024 +0530
|
|
||||||
|
|
||||||
added viva imp questions from sir
|
|
||||||
|
|
||||||
commit 1bad14a80d20d71dd4b615edfcacb7d1a10f12a9
|
|
||||||
Author: Kshitij <REDACTED_EMAIL>
|
|
||||||
Date: Sun Apr 28 17:08:51 2024 +0530
|
|
||||||
|
|
||||||
added unit 4 and 5 ppts, updated readme
|
|
||||||
|
|
||||||
commit 74346ed32edcdd348646b75a606a428c0349c517
|
|
||||||
Author: Kshitij <REDACTED_EMAIL>
|
|
||||||
Date: Mon Apr 22 14:03:54 2024 +0530
|
|
||||||
|
|
||||||
added important questions for unit 3 to 6 and updated README file
|
|
||||||
|
|
||||||
commit 5933ac1ea1b60582823e180b57a66404549b00c7
|
|
||||||
Author: Kshitij <REDACTED_EMAIL>
|
|
||||||
Date: Mon Apr 22 09:53:59 2024 +0530
|
|
||||||
|
|
||||||
Updated Readme
|
|
||||||
|
|
||||||
commit ab9f7d9f7c8148a86248c8ea56f1d41c112eacd3
|
|
||||||
Author: Kshitij <REDACTED_EMAIL>
|
|
||||||
Date: Mon Apr 22 09:50:07 2024 +0530
|
|
||||||
|
|
||||||
fixed 5.1 ready to upload
|
|
||||||
|
|
||||||
commit c6c05dd71fcae95deb027ae4df3620beb2b76359
|
|
||||||
Author: Kshitij <REDACTED_EMAIL>
|
|
||||||
Date: Sun Apr 21 11:17:49 2024 +0530
|
|
||||||
|
|
||||||
added factorial code and output, also cropped outputs in other printable codes and output to remove username and directory (unnecessary info)
|
|
||||||
|
|
||||||
commit 39457abb17c69d507e0a73ceaf33f9c0d66bb835
|
|
||||||
Author: Kshitij <REDACTED_EMAIL>
|
|
||||||
Date: Sun Apr 21 00:56:01 2024 +0530
|
|
||||||
|
|
||||||
changed printable codes & outputs name, add .md in Write-ups README folder and updated main README
|
|
||||||
|
|
||||||
commit d9f2fae71946f465d6bfeabe563bca69f392cc3e
|
|
||||||
Author: Kshitij <REDACTED_EMAIL>
|
|
||||||
Date: Sun Apr 21 00:51:06 2024 +0530
|
|
||||||
|
|
||||||
added printable version for codes with output for assignment 5,6,7,8 and added a readme file in the printable code and output folder
|
|
||||||
|
|
||||||
commit f362193ee58dde3e09ac670f9d38b4be7b173114
|
|
||||||
Author: Kshitij <REDACTED_EMAIL>
|
|
||||||
Date: Sun Apr 21 00:14:39 2024 +0530
|
|
||||||
|
|
||||||
Moved handouts (lab manuals) from write-ups folder to handouts folder, updated readme and added note in the write-ups folder
|
|
||||||
|
|
||||||
commit 5b5a394347c4d0bce4f930631622bfdce476094e
|
|
||||||
Author: Kshitij <REDACTED_EMAIL>
|
|
||||||
Date: Sat Apr 20 23:57:21 2024 +0530
|
|
||||||
|
|
||||||
merged practical-13 code from testing branch and updated readme
|
|
||||||
|
|
||||||
commit 3cebbf646d284937ac927b07a8a0dd97803ed933
|
|
||||||
Author: Kshitij <REDACTED_EMAIL>
|
|
||||||
Date: Sat Apr 20 22:46:26 2024 +0530
|
|
||||||
|
|
||||||
merged practical-12 code from testing branch, fully functional. also updated readme
|
|
||||||
|
|
||||||
commit 8c18cfeeffb24bfad69009e1bb1c485606eb7fa4
|
|
||||||
Author: Kshitij <REDACTED_EMAIL>
|
|
||||||
Date: Sat Apr 20 22:30:04 2024 +0530
|
|
||||||
|
|
||||||
merged practical-11 code from testing branch and updated readme
|
|
||||||
|
|
||||||
commit 51f6c045239ba2c1e802efd1575b055e3ffd8979
|
|
||||||
Author: Kshitij <REDACTED_EMAIL>
|
|
||||||
Date: Sat Apr 20 22:19:56 2024 +0530
|
|
||||||
|
|
||||||
added fully functional Practical-10 code
|
|
||||||
|
|
||||||
commit 7e6a52da8051fe9f931576863ef5902f27973838
|
|
||||||
Author: Kshitij <REDACTED_EMAIL>
|
|
||||||
Date: Fri Apr 19 12:48:01 2024 +0530
|
|
||||||
|
|
||||||
merged Practical 5.2 code from testing branch, tested and fixed.
|
|
||||||
|
|
||||||
commit 628bdedb8e0fa7cb42d5d83805644d170932a669
|
|
||||||
Author: Kshitij <REDACTED_EMAIL>
|
|
||||||
Date: Fri Apr 19 11:52:20 2024 +0530
|
|
||||||
|
|
||||||
fixed write-up solutions link in readme
|
|
||||||
|
|
||||||
commit 1dad265a92058fbe361cd21bfcd968ae5632cfc7
|
|
||||||
Author: Kshitij <REDACTED_EMAIL>
|
|
||||||
Date: Fri Apr 19 11:50:00 2024 +0530
|
|
||||||
|
|
||||||
updated write-up solutions pdf and readme
|
|
||||||
|
|
||||||
commit fc1f9baab455dc730c654ef740b85e5df7a02545
|
|
||||||
Author: TanmayMachkar <REDACTED_EMAIL>
|
|
||||||
Date: Wed Apr 17 14:04:46 2024 +0530
|
|
||||||
|
|
||||||
readme updated
|
|
||||||
|
|
||||||
commit 221a65c6f34b11836201826f7bdb1d026e6f9077
|
|
||||||
Author: TanmayMachkar <REDACTED_EMAIL>
|
|
||||||
Date: Wed Apr 17 13:59:21 2024 +0530
|
|
||||||
|
|
||||||
all 10 assignments added
|
|
||||||
|
|
||||||
commit 7f4cdc21011e30fb508252390982a88cbd93f198
|
|
||||||
Author: Kshitij <REDACTED_EMAIL>
|
|
||||||
Date: Wed Apr 17 00:07:43 2024 +0530
|
|
||||||
|
|
||||||
changed file name that references the testing branch
|
|
||||||
|
|
||||||
commit 82ebaeb8f83161db2298facfb360f9d70913be9d
|
|
||||||
Author: Kshitij <REDACTED_EMAIL>
|
|
||||||
Date: Wed Apr 17 00:06:47 2024 +0530
|
|
||||||
|
|
||||||
added references to the testing branch
|
|
||||||
|
|
||||||
commit 27ce9c7f275210a3924e4648715b81c698d3c4b1
|
|
||||||
Author: Kshitij <REDACTED_EMAIL>
|
|
||||||
Date: Tue Apr 16 23:43:23 2024 +0530
|
|
||||||
|
|
||||||
forgot to add readme file in the last commit lol
|
|
||||||
|
|
||||||
commit 1c2829671bc68922052632d72dd615009ade58d4
|
|
||||||
Author: Kshitij <REDACTED_EMAIL>
|
|
||||||
Date: Tue Apr 16 23:42:02 2024 +0530
|
|
||||||
|
|
||||||
added 3.2 (non-overlapped without string specific instruction block transfer), 4.1 & 4.2 (overlapped block transfer) and updated readme file
|
|
||||||
|
|
||||||
commit daa924ef684b1fe62b5946bdb162c125cd24c451
|
|
||||||
Author: Kshitij <REDACTED_EMAIL>
|
|
||||||
Date: Tue Apr 16 13:29:20 2024 +0530
|
|
||||||
|
|
||||||
Added code for practical 1 and 3.1, plus updated readme
|
|
||||||
|
|
||||||
commit 75db27b6a25862d87ef25ee5db1e7759752c6db5
|
|
||||||
Author: Kshitij <REDACTED_EMAIL>
|
|
||||||
Date: Tue Apr 16 12:27:17 2024 +0530
|
|
||||||
|
|
||||||
fixed link for factorial write-up part 2
|
|
||||||
|
|
||||||
commit e152f88e38fcee8e1944fc628e9dd41999d50b77
|
|
||||||
Author: Kshitij <REDACTED_EMAIL>
|
|
||||||
Date: Tue Apr 16 12:26:09 2024 +0530
|
|
||||||
|
|
||||||
fixed link for factorial write-up
|
|
||||||
|
|
||||||
commit 171ffc667122c495dd03f7a36ae648baa153bd2c
|
|
||||||
Author: Kshitij <REDACTED_EMAIL>
|
|
||||||
Date: Tue Apr 16 12:24:41 2024 +0530
|
|
||||||
|
|
||||||
added write-ups and updated readme file
|
|
||||||
|
|
||||||
commit 8bc6f6650279e2a65ecfd1802f9e8eb9cc1bc4fe
|
|
||||||
Author: Kshitij <REDACTED_EMAIL>
|
|
||||||
Date: Fri Apr 12 10:26:23 2024 +0530
|
|
||||||
|
|
||||||
added u3 notes
|
|
||||||
|
|
||||||
commit 6dc72916ba907b0895c6a83be2ccd88d6fe7f557
|
|
||||||
Author: Kshitij <REDACTED_EMAIL>
|
|
||||||
Date: Sun Mar 10 00:29:23 2024 +0530
|
|
||||||
|
|
||||||
fixed link in readme
|
|
||||||
|
|
||||||
commit 70587254ab508d88aecff578368424079df38cf2
|
|
||||||
Author: Kshitij <REDACTED_EMAIL>
|
|
||||||
Date: Sun Mar 10 00:24:59 2024 +0530
|
|
||||||
|
|
||||||
added question banks for unit 1 and 2
|
|
||||||
|
|
||||||
commit b188e8011d19968210239c7954515a72f7f418fb
|
|
||||||
Author: Kshitij <REDACTED_EMAIL>
|
|
||||||
Date: Mon Mar 4 21:26:02 2024 +0530
|
|
||||||
|
|
||||||
added code for assignment 8
|
|
||||||
|
|
||||||
commit 5d1e57a62decfdf3f6cd6fa0fb2e0dcea00e749d
|
|
||||||
Author: Kshitij <REDACTED_EMAIL>
|
|
||||||
Date: Mon Feb 26 09:35:19 2024 +0530
|
|
||||||
|
|
||||||
updated README
|
|
||||||
|
|
||||||
commit 6501e8a3841cd16ec5f286c93122f7ab6facd628
|
|
||||||
Author: Kshitij <REDACTED_EMAIL>
|
|
||||||
Date: Mon Feb 26 09:33:18 2024 +0530
|
|
||||||
|
|
||||||
added code for A5
|
|
||||||
|
|
||||||
commit 40c23cdfca96fdfcc2bb9295839db096ca7d43b9
|
|
||||||
Author: Kshitij <REDACTED_EMAIL>
|
|
||||||
Date: Wed Feb 21 02:25:23 2024 +0530
|
|
||||||
|
|
||||||
added unit 2 notes
|
|
||||||
|
|
||||||
commit 4a323c06a449c02c15f5b1344b149c08c033950d
|
|
||||||
Author: Kshitij <REDACTED_EMAIL>
|
|
||||||
Date: Fri Feb 16 16:51:45 2024 +0530
|
|
||||||
|
|
||||||
removed assignment-01
|
|
||||||
|
|
||||||
commit 76e6a414b110ddcfdfd024e579582745b291d171
|
|
||||||
Author: TanmayMachkar <REDACTED_EMAIL>
|
|
||||||
Date: Sat Feb 10 22:47:37 2024 +0530
|
|
||||||
|
|
||||||
readme updated
|
|
||||||
|
|
||||||
commit 720b550f5d1b9875a019d3b1d15dc861591534a6
|
|
||||||
Author: TanmayMachkar <REDACTED_EMAIL>
|
|
||||||
Date: Sat Feb 10 22:45:23 2024 +0530
|
|
||||||
|
|
||||||
unit 1 pdf's added
|
|
||||||
|
|
||||||
commit 3d4c0a5ed3264c44456d304b92b11efc87352053
|
|
||||||
Author: Kshitij <REDACTED_EMAIL>
|
|
||||||
Date: Sat Feb 10 13:29:40 2024 +0530
|
|
||||||
|
|
||||||
Updated readme
|
|
||||||
|
|
||||||
commit dd882d8b20798ad7cc653cb442d68dfa97755dbe
|
|
||||||
Author: Kshitij <REDACTED_EMAIL>
|
|
||||||
Date: Sat Feb 10 13:27:07 2024 +0530
|
|
||||||
|
|
||||||
Added assignment 01
|
|
||||||
|
|
||||||
commit fc48b3ac0f0a32969b66d416698fc7f8553643db
|
|
||||||
Author: Kshitij <REDACTED_EMAIL>
|
|
||||||
Date: Mon Feb 5 00:59:30 2024 +0530
|
|
||||||
|
|
||||||
Added links for PYQs
|
|
||||||
|
|
||||||
commit bfb19b79d8174387ac467d1f62b00d14f170d26a
|
|
||||||
Author: Kshitij <REDACTED_EMAIL>
|
|
||||||
Date: Mon Feb 5 00:57:56 2024 +0530
|
|
||||||
|
|
||||||
Added PYQs
|
|
||||||
|
|
||||||
commit 8818a373b5fe5a34fa2f818593ad7d197e4732d4
|
|
||||||
Author: Kshitij <REDACTED_EMAIL>
|
|
||||||
Date: Sun Feb 4 20:12:23 2024 +0530
|
|
||||||
|
|
||||||
Added DISCLAIMER, LICENSE file, updated the README file, moved Unit 1 notes to notes folder
|
|
||||||
|
|
||||||
commit a6ed2610f8ac5c96b94389cef6f8a2c2cb0e326a
|
|
||||||
Author: TanmaySpamzzz <REDACTED_EMAIL>
|
|
||||||
Date: Mon Jan 29 19:16:05 2024 +0530
|
|
||||||
|
|
||||||
Update README.md
|
|
||||||
|
|
||||||
commit 275194c744be835c03dc56b4c23e644a9902637c
|
|
||||||
Author: TanmayMachkar <REDACTED_EMAIL>
|
|
||||||
Date: Mon Jan 29 19:10:06 2024 +0530
|
|
||||||
|
|
||||||
readme updated
|
|
||||||
|
|
||||||
commit 2177ad1fffa2ca1eae559ebf5d5e3b17293ca599
|
|
||||||
Author: TanmayMachkar <REDACTED_EMAIL>
|
|
||||||
Date: Mon Jan 29 19:09:03 2024 +0530
|
|
||||||
|
|
||||||
u1 added
|
|
Loading…
Reference in New Issue
Block a user