2582 Eksamen dcomnet Q2/2010 ID Navn
Example I A32-prg1 Betragt følgende program skrevet i IA-32 symbolsk maskinsprog:.section.data x:.long 2 r:.long 27.section.text.globl _start _start: pushl x movl $0,%ebx call func addl $4,%esp movl %eax,r movl r,%ebx movl $1,%eax int $0x80.type func, @function func: pushl %ebp movl %esp,%ebp movl 8(%ebp),%eax cmpl $0,%eax jle if jmp else if: movl %ebx,%eax jmp endif else: addl %eax,%ebx subl $1,%eax pushl %eax call func addl $4,%esp endif:movl %ebp,%esp popl %ebp ret Antag C kaldkonvention med hensyn til func funktionen. Antag eip=50 ebp=1016 esp=1000 eax=27 lige før første call func instruktion (første gang den udføres hvis den udføres mere end en gang) i start programdelen. Antag func ligger på addresse 150.
2582 Spørgsmål 1 I spm-b A32-prg1 Hvad er eip, ebp, esp, eax og ebx lige efter første call func instruktion (første gang den udføres hvis den udføres mere end en gang) i programdelen i eksemplet (IA32-prg1) ovenfor? a b c d e f g eip=150 ebp=1016 esp=992 eax=27 ebx=0 eip=150 ebp=1016 esp=1008 eax=27 ebx=0 eip=150 ebp=992 esp=992 eax=27 ebx=0 eip=150 ebp=1008 esp=1008 eax=27 ebx=0 eip=150 ebp=1016 esp=1002 eax=27 ebx=0 eip=51 ebp=1016 esp=992 eax=27 ebx=0 eip=150 ebp=1016 esp=996 eax=27 ebx=0 Spørgsmål 2 I spm-d A32-prg1 Hvilken funktion udfører programmet i almindelighed i eksemplet (IA32-prg1) ovenfor, hvis x er et vilkårligt, positivt heltal n? a n + (n 1) +... + 1 b 2 n c n! d n n e n 1 f programmet kører uendeligt (uendelig løkke) g n + n h n + 1 Spørgsmål 3 I spm-c A32-prg1 Hvilken værdi returnerer programmet i eksemplet (IA32-prg1) ovenfor, hvis x=5? a 0 b 10 c 25 d 4 e 15 f 120 g programmet kører uendeligt (uendelig løkke)
Spørgsmål 4 I spm-a A32-prg1 Hvilken værdi returnerer programmet i eksemplet (IA32-prg1) ovenfor? a programmet kører uendeligt (uendelig løkke) b 2 c 0 d 27 e 29 f 3 Example L ogik1 Betragt sandhedstabellen: A B I 1 I 2 I 3 I 4 Output 0 0 0 X X X 0 0 0 1 X X X 1 0 1 X 0 X X 0 0 1 X 1 X X 1 1 0 X X 0 X 0 1 0 X X 1 X 1 1 1 X X X 0 0 1 1 X X X 1 1 hvor X kan være 0 eller 1. Spørgsmål 5 L spm-a ogik1 Hvilken boolsk funktion implementerer sandhedstabellen i eksemplet (Logik1) ovenfor? a Output = ABĪ1 + ABĪ2 + ABĪ3 + ABĪ4 b Output = I 1 + I 2 + I 3 + I 4 c Output = AB(I 1 + I 2 + I 3 + I 4 ) d Output = Ā BĪ1 + ĀBĪ2 + A BĪ3 + ABĪ4 e Output = Ā BI 1 + ĀBI 2 + A BI 3 + ABI 4 f Output = ABI 1 + ABI 2 + ABI 3 + ABI 4
2582 Spørgsmål 6 L spm-b ogik1 Hvilket type kredsløb repræsenterer sandhedtabellen i eksemplet (Logik1) ovenfor? a b c d e f 4 input OR En halv adder 4 til 1 skifteregister 6 input OR 2 til 4 decoder 4 til 1 multiplexer Example i jvm-ass2 Betragt følgende ijvm-asm program:.method main bipush 88 bipush 4 bipush 3 isub iadd ireturn Spørgsmål 7 i spm-a jvm-ass2 Hvad er resultatet af kørsel af programmet i eksemplet (ijvm-ass2) ovenfor? a 88 b 87 c 95 d 90 e 89 Spørgsmål 8 i spm-b jvm-ass2 Hvad er den maksimale højde af stakken i eksemplet (ijvm-ass2) ovenfor, når programmet afvikles? a 3 b 7 c 8 d 6 e 5 f stakken er ikke veldefineret g 4
Example i jvm-ass1 Betragt følgende ijvm-asm program:.method method.args 2.define x = 1 iload x ifeq a iload x bipush 1 isub ifeq b bipush 88 iload x bipush 2 isub invokevirtual method bipush 3 iadd ireturn a: bipush 1 ireturn b: bipush 3 ireturn.method main bipush 1 bipush 3 invokevirtual method ireturn Spørgsmål 9 i spm-b jvm-ass1 Lige inden instruktionen ifeq a udføres (først gang hvis den udføres mere end en gang) i eksemplet (ijvm-ass1) ovenfor, hvordan ser stakken så ud? a stack = 88, 0, 1, 16 b stack = 3, 88, 0, 1, 16 c stack = 3, 15, 48, 3, 20, 0, 1, 16 d stack = 1, 48, 3, 20, 0, 1, 16 e stack = 0, 1, 16 f stack = 15, 48, 3, 88, 0, 1, 16
2582 Spørgsmål 10 i spm-a jvm-ass1 Hvad er resultatet af kørsel af programmet i eksemplet (ijvm-ass1) ovenfor? a 7 b 4 c 2 d programmet kører uendeligt (uendelig løkke) e 5 f programmet kan ikke oversættes, derfor kan det ikke køres g 8 h 1 i 6 j 3
Spørgsmål 11 p rog-exe Betragt følgende graf (PC står for Program Counter), som illustrerer den komplette udførsel af et program. Hvilken af følgende beskrivelser, kan grafen illustrere? a b c d e en programudførsel udelukkende med sekventiel udførsel en programudførsel med hop men uden kald af subroutiner (invokevirtual) det kan ikke afgøres ud fra grafen en programudførsel med hop og/eller kald af een subroutine (invokevirtual) en programudførsel med hop og/eller kald af flere subroutiner (invokevirtual)
2582 Example N et1 Betragt det lokale netværk bestående af 4 computere med hver deres netværkskort med følgende addresser: Computer 1: MAC addresse: 1A-1B-1C-1D-1E-1F-14 IP addresse: 111.111.111.111 Computer 2: MAC addresse: 1A-1B-1C-1D-1E-1F-13 IP addresse: 111.111.111.112 Computer 3: MAC addresse: 1A-1B-1C-1D-1E-1F-12 IP addresse: 111.111.111.113 Computer 4: MAC addresse: 1A-1B-1C-1D-1E-1F-11 IP addresse: 111.111.111.114 De 4 computere er koblet på en switch med 4 porte med følgende opkobling: Port A: Computer 4 Port B: Computer 3 Port C: Computer 2 Port D: Computer 1 og nuværende forwarding tabel: 1A-1B-1C-1D-1E-1F-13 : PortC Betraget ethernet framen som bliver sendt via nettet: Preamble 1A-1B-1C-1D-1E-1F-13 1A-1B-1C-1D-1E-1F-14 Type... Data... CRC Spørgsmål 12 N spm-a et1 Hvilken computer sender ethernet framen i eksemplet (Net1) ovenfor? a Computer 3 b Ingen c Computer 1 d Alle e Computer 4 f Computer 2
Spørgsmål 13 N spm-d et1 Betraget en anden ethernet frame, som bliver sendt via nettet: Preamble FF-FF-FF-FF-FF-FF-FF 1A-1B-1C-1D-1E-1F-13 Type... Data... CRC Hvilken computer sender switchen denne ethernet frame til i eksemplet (Net1) ovenfor? a Computer 4 b Computer 1, Computer 3 og Computer 4 c Computer 2 d Ingen e Alle f Computer 3 g Computer 1 Spørgsmål 14 N spm-c et1 Hvordan ser forwarding tabellen ud efter ethernet framen er sendt over nettet i eksemplet (Net1) ovenfor? a b c d 1A-1B-1C-1D-1E-1F-13 : PortC 1A-1B-1C-1D-1E-1F-11 : PortA 1A-1B-1C-1D-1E-1F-12 : PortB 1A-1B-1C-1D-1E-1F-14 : PortD 1A-1B-1C-1D-1E-1F-13 : PortC 1A-1B-1C-1D-1E-1F-11 : PortA 1A-1B-1C-1D-1E-1F-13 : PortC 1A-1B-1C-1D-1E-1F-14 : PortD 1A-1B-1C-1D-1E-1F-13 : PortC 1A-1B-1C-1D-1E-1F-12 : PortB
2582 Spørgsmål 15 N spm-b et1 Hvilken computer sender switchen ethernet framen til i eksemplet (Net1) ovenfor? a Computer 1 b Computer 4 c Computer 2 d Alle e Computer 3 f Ingen Example M ic-kode1 Betragt følgende symbolske mikrokode til Mic-1 og som er en ny instruktion (inew) til ijvm mikroprogrammet: inew: MAR = SP = SP - 1;rd OPC = TOS TOS = MDR H = 1 Z = H AND OPC;if (Z) goto T; else goto F T: OPC = PC - 1; fetch; goto goto_cont F: PC = PC + 1 PC = PC + 1;fetch goto main goto_cont: PC = PC +1;fetch H = MBR << 8 H = MBRU OR H PC = OPC + H; fetch goto main Antag PC=101 SP=200 MAR=200 TOS=201 Mem[101]=14 Mem[102]=0 Mem[103]=0 Mem[199]=15 Mem[200]=201 lige før inew instruktionen udføres. Mem[###] refererer til ordet (4 bytes) i lageret (memory) på ord-adressen ###.F.eks. Mem[1] svarer til bytes 4, 5, 6 og 7 i lageret.
Spørgsmål 16 M spm-b ic-kode1 Hvad er PC, SP, MAR, TOS, Mem[199] og Mem[200] lige efter der hoppes til main igen efter udførslen af inew i eksemplet (Mic-kode1) ovenfor? a b c d e f PC=102 SP=199 MAR=199 TOS=15 Mem[199]=15 Mem[200]=201 PC=114 SP=199 MAR=199 TOS=201 Mem[199]=201 Mem[200]=201 PC=103 SP=199 MAR=199 TOS=201 Mem[199]=201 Mem[200]=201 PC=103 SP=199 MAR=199 TOS=15 Mem[199]=15 Mem[200]=201 PC=114 SP=199 MAR=199 TOS=201 Mem[199]=15 Mem[200]=201 PC=114 SP=199 MAR=199 TOS=15 Mem[199]=15 Mem[200]=201 Spørgsmål 17 M spm-a ic-kode1 Hvilken operation udfører denne nye inew instruktion med hensyn til ijvm maskinen i eksemplet (Mic-kode1) ovenfor? a Sætter det øverste ord på stakken lig med 1 b Sætter det øverste ord på stakken lig med Z c Fjerner det øverste ord på stakken og hopper, hvis det er ulige d Sætter det øverste ord på stakken lig med H e Fjerner det øverste ord på stakken og hopper, hvis det er lige f Sætter det øverste ord på stakken lig med 0 Example i jvm-bin1 Betragt følgende ijvm binære kode: main index: 0 method area: 11 bytes 00 01 00 00 10 04 10 03 5f 60 ac constant pool: 1 words 00000000
2582 Spørgsmål 18 i spm-a jvm-bin1 Hvilken af følgende assembler programmer svarer den binære kode i eksemplet (ijvm-bin1) ovenfor til? a b c d e.method main bipush 4 bipush 3 ifeq a a: ireturn.method main bipush 3 bipush 4 swap iadd Ingen da der optræder en ulovlig instruktion.method main bipush 4 bipush 3 swap iadd ireturn.method main bipush 3 bipush 4 dup iadd Spørgsmål 19 m ic-inst Vi ønsker at implementere een mikroinstruktion, der samtidigt kan tælle både Stak Pointer (SP) og Program Counter (PC) en op. Hvordan kunne sådan en mikroinstruktion implementeres på Mic-1 arkitekturen (XXXXXXXXX er adressen på næste mikroinstruktion og er irrelevant i denne opgave)? a XXXXXXXXX 000 00111001 000000101 010 0101 b XXXXXXXXX 000 00110101 000000101 010 0001 c XXXXXXXXX 000 00110101 000000101 010 0101 d XXXXXXXXX 000 00111001 000000101 010 0001 e Kan ikke lade sig gøre i een mikroinstruktions cycklus
Spørgsmål 20 t al-rep Følgende tal er repræsenteret i 2-komplement, 8 bit: 11010101 Hvad er værdien af tallet? a 21 b -43 c 43 d -21 e 213 f 123