We are here with you hands in hands to facilitate your learning & don't appreciate the idea of copying or replicating solutions. Read More>>

Looking For Something at vustudents.ning.com? Click Here to Search

www.bit.ly/vucodes

+ Link For Assignments, GDBs & Online Quizzes Solution

www.bit.ly/papersvu

+ Link For Past Papers, Solved MCQs, Short Notes & More

Share your solutions here!

+ Click Here To Join also Our facebook study Group.

..How to Join Subject Study Groups & Get Helping Material?..


See Your Saved Posts Timeline

Views: 3560

.

+ 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?)

Attachments:

Replies to This Discussion

CS401-assignment-sol

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-...

CS401 Assignment No 03 Spring 2019 Idea Solution

#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

RSS

Today Top Members 

© 2019   Created by + M.Tariq Malik.   Powered by

Promote Us  |  Report an Issue  |  Privacy Policy  |  Terms of Service