Unit Two Objectives CSCI 223 Computer Organization & Assembly Language 1)Define "subroutine" and explain the stack operations of the call and ret instructions. 2)Define "frame setup/teardown" and explain the stack operations that setup and teardown the frame. 1)Explain how the memory can be viewed as bytes, words, double words. 2)Describe the tradeoff of moving groups of characters (such as double words). 3)Explain how the Intel 8088 calculates an effective address. 4)Explain how the CPU "knows" which segment register to use and when. 5)Define "memory model" and contrast "tiny," "small," "medium," and "large." 6)Describe how segments may be organized and interact. 7)Show how a computer uses addition to subtract two numbers. 8)Contrast the notation for "contents of" versus "address of" and explain the difference between "immediate" and "data" references. 9)Define "addressing mode" and give five examples using the "MOV" instruction. 10)Describe the stack push and pop operations showing the contents of registers and the little endian contents of the stack. 11)Describe the steps required to respond to an environmental interrupt. 12)Contrast interrupts versus traps. 12a)Define "ISR" and describe the five steps of an ISR. 13)Describe a "range check" and give an example. 14)Show how to use a bit-mask to set and clear a "bit-of-interest." 14a)Define bit-vector programming, give its tradeoff, and three examples. 15)Describe how to convert a multi-digit ASCII string to a binary number. 16)Contrast tail recursion versus "real" recursion. 16A)Describe the recursive conversion of a binary number to an ASCII string. 17)Explain how to implement a subroutine and explain how the CPU executes it. 18)Explain how the PSW acts as a mailbox between the caller and callee. 19)Be able to translate an assembly language statement into hex digits. 20)Define "pipelining" and explain the design tradeoff. 21)Describe the design tradeoff of magnetic tape and the odd thing about its logical records. 22)Describe the details of hard disk geometry and explain why it was, and no longer is, relevant. 23)Describe hard disk technology pre and post "winchester." 24)Explain how CLV CD-ROM drives differ from CAV hard disks, explain the irony of CD-ROM media, and explain how CD-ROMs differ in their device driver software. 25)Using PMS notation, contrast the basic differences in system architecture among "mainframes," "workstations," and "PCs." 26)Describe the component interaction within a video adapter and "monitor." 27)Explain how "dumb TTYs" differ from "monitors" and give the design tradeoff. 28)Explain the difference between synchronous and asynchronous transmission, and also explain why synchronous buses tend to yield higher performance systems. 29)Contrast a "command" versus "GUI" user interface and describe the basic GUI interface algorithm. 30)Contrast dot matrix versus laser printers and explain how the resolution mismatch between display and printer is resolved. 31)Describe the three basic components of "paging" and explain the five general steps in dealing with a page fault. 32)Describe the relationship between a virtual address and a page table. 33)Explain the (lack of) organization between sequential virtual and physical addresses and explain how this allows dynamic module sharing. 34)Explain how extremes in working sets interact with "thrashing." 35)Contrast paging and segmentation and explain why one may or may not out perform the other (see selectors). 36)Describe five additional fields in a page table entry. 37)Explain the "irony" of human programmers and its implications for project management. 38)Assuming a project is written in a high-level language, describe the steps to improve program performance. 39)Describe a two-pass assembler and the role of the symbol table. 40)Explain how to write a macro which accepts parameters and give an example showing how different actual values are passed into formal parameters. 41)Contrast macros and subroutine calls and give the design tradeoff. 42)Give an example which shows how relocatable object modules are linked. 43)Give an example of dynamic object module linking. 44)Describe the effects on computer architecture of early computer implementation constraints and describe the effect that medium and large scale integration had on more recent computer architectures. 45)Explain the results observed of how computers were used versus how they were designed. 46)Describe three basic design goals for modern architectures. 47)Explain how designers reduce decode complexity (use fewer inst, use just direct & indirect addressing - no indexing modes, use fixed length instructions, no microcode, and use special test instruction to set PSW) and explain how decode complexity is handled in the Pentium. 48)Explain how modern computers obtain "optimal pipeline" performance. 49)Explain how modern computers "eliminate" stack frame overhead. 50)Describe the process of compiler-based "register allocation."