+ Link For Assignments, GDBs & Online Quizzes Solution |
+ Link For Past Papers, Solved MCQs, Short Notes & More |
Share your solutions here!
Tags:
+ http://bit.ly/vucodes (Link for Assignments, GDBs & Online Quizzes Solution)
+ http://bit.ly/papersvu (Link for Past Papers, Solved MCQs, Short Notes & More)
+ Click Here to Search (Looking For something at vustudents.ning.com?) + Click Here To Join (Our facebook study Group)CS401-assignment-sol
it is not the solution
I'm not getting it sir. how can we use this n where ?
Respected sir
This is can not be the solution in any case.Kindly share the solution which is pertinent to the question.
Thanks
A.o.A Vu ID kahan dy gay code ma
This is as close to the working solution as i can get, can someone make some amendments here according to the instructions
https://stackoverflow.com/questions/57134021/how-to-print-a-string-...
#Check ur self
#Code
[org 0x0100]
jmp start
oldisr: dd 0 ; space for saving old isr
; keyboard interrupt service routine
kbisr:
push ax
push es
mov ax, 0xb800
mov es, ax ; point es to video memory
in al, 0x60 ; read a character from keyboard port
cmp al, 0x11 ; has the 'w' key pressed
jne nomatch ; no, go to nomatch
mov byte [es:0], '1' ; yes, print 1
mov byte [es:2], '5' ; yes print 0
jmp exit ; leave interrupt routine
nomatch:
pop es
pop ax
jmp far [cs:oldisr] ; call the original ISR
exit
mov al, 0x20
out 0x20, al ; sent EOI to PIC
pop es
pop ax
iret ; return from interrupt
start:
xor ax, ax
mov es, ax ; point es to IVT base
mov ax, [es:9*4]
mov [oldisr], ax ; save offset of old routine
mov ax, [es:9*4+2]
mov [oldisr+2], ax ; save segment of old routine
cli ; disable interrupts
mov word [es:9*4], kbisr ; store offset at n*4
mov [es:9*4+2], cs ; store segment at n*4+2
sti ; enable interrupt
mov dx, start ; end of resident portion
add dx, 15 ; round up to next para
mov cl, 4
shr dx, cl ; number of paras
mov ax, 0x3100 ; terminate and stay residant
int 0x21
[org 0x0100]
jmp start
oldisr: dd 0 ; space for saving old isr
; keyboard interrupt service routine
kbisr:
push ax
push es
mov ax, 0xb800
mov es, ax ; point es to video memory
in al, 0x60 ; read a character from keyboard port
cmp al, 0x11 ; has the 'w' key pressed
jne nomatch ; no, go to nomatch
mov byte [es:0], '1' ; yes, print 1
mov byte [es:2], '5' ; yes print 0
jmp exit ; leave interrupt routine
nomatch:
pop es
pop ax
jmp far [cs:oldisr] ; call the original ISR
exit
mov al, 0x20
out 0x20, al ; sent EOI to PIC
pop es
pop ax
iret ; return from interrupt
start:
xor ax, ax
mov es, ax ; point es to IVT base
mov ax, [es:9*4]
mov [oldisr], ax ; save offset of old routine
mov ax, [es:9*4+2]
mov [oldisr+2], ax ; save segment of old routine
cli ; disable interrupts
mov word [es:9*4], kbisr ; store offset at n*4
mov [es:9*4+2], cs ; store segment at n*4+2
sti ; enable interrupt
mov dx, start ; end of resident portion
add dx, 15 ; round up to next para
mov cl, 4
shr dx, cl ; number of paras
mov ax, 0x3100 ; terminate and stay residant
int 0x21
it is not correct. Please read question once.
correct solution?
cs401 assignment solution.
[org 0x0100]
jmp start
oldisr: dd 0 ; space for saving old isr
; keyboard interrupt service routine
kbisr:
push ax
push es
mov ax, 0xb800
mov es, ax ; point es to video memory
in al, 0x60 ; read a character from keyboard port
cmp al, 0x11 ; has the 'w' key pressed
jne nomatch ; no, go to nomatch
mov byte [es:0], '1' ; yes, print 1
mov byte [es:2], '5' ; yes print 0
jmp exit ; leave interrupt routine
nomatch:
pop es
pop ax
jmp far [cs:oldisr] ; call the original ISR
exit
mov al, 0x20
out 0x20, al ; sent EOI to PIC
pop es
pop ax
iret ; return from interrupt
start:
xor ax, ax
mov es, ax ; point es to IVT base
mov ax, [es:9*4]
mov [oldisr], ax ; save offset of old routine
mov ax, [es:9*4+2]
mov [oldisr+2], ax ; save segment of old routine
cli ; disable interrupts
mov word [es:9*4], kbisr ; store offset at n*4
mov [es:9*4+2], cs ; store segment at n*4+2
sti ; enable interrupt
mov dx, start ; end of resident portion
add dx, 15 ; round up to next para
mov cl, 4
shr dx, cl ; number of paras
mov ax, 0x3100 ; terminate and stay residant
int 0x21
© 2021 Created by + M.Tariq Malik.
Powered by
Promote Us | Report an Issue | Privacy Policy | Terms of Service
We have been working very hard since 2009 to facilitate in learning Read More. We can't keep up without your support. Donate.
We are user-generated contents site. All product, videos, pictures & others contents on site don't seem to be beneath our Copyrights & belong to their respected owners & freely available on public domains. We believe in Our Policy & do according to them. If Any content is offensive in your Copyrights then please email at m.tariqmalik@gmail.com Page with copyright detail & We will happy to remove it immediately.
Management: Admins ::: Moderators
Awards Badges List | Moderators Group
All Members | Featured Members | Top Reputation Members | Angels Members | Intellectual Members | Criteria for Selection
Become a Team Member | Safety Guidelines for New | Site FAQ & Rules | Safety Matters | Online Safety | Rules For Blog Post