ECE 550 Fundamentals of Computer Systems and Engineering. Section 01 Fall 2016 Final Exam. Name: NetID:
|
|
- Anabel Austin
- 5 years ago
- Views:
Transcription
1 ECE 550 Fundamentals of Computer Systems and Engineering Section 01 Fall 2016 Final Exam Name: NetID: READ THIS: This is a closed-book, closed-internet, closed-peer, calculator-free exam. You may use ONE 8.5x11 twosided sheet of notes; additional notes are not permitted. If you are caught violating these rules by the teaching staff, you will receive a -100 on the exam and will have an academic integrity violation filed against you. The last page is a reference sheet you may find useful. You may tear it from the exam, and it s yours to keep. Unless otherwise specified, the computing platform assumed on all questions is 32-bit MIPS. Please sign the honor pledge below to affirm that you understand the rules of this exam period. Your exam will not be graded if you do not sign the honor pledge. I have neither given nor received unauthorized aid on this test or assignment Signature: Date: Question Max points Score E.C. (+10) TOTAL 200 ECE 550 Final Exam Page 1 of 13
2 Question 1 [20]: Match each of the following definitions with the appropriate vocabulary word. (a) Virtual memory address translation data structure. (b) A class of ISAs characterized by complex instructions, such as x86. (c) A piece of logic which selects between two inputs, based on the value of a third input. (d) A piece of logic which translates from binary representation to one-hot representation. (e) When an instruction exhibits unusual circumstances, requiring the OS s attention. (f) The idea that a program will often re-access the same data it just accessed. (g) A memory technology which requires periodic refreshing, because the charge stored in the capacitor slowly leaks away. (h) An enhancement to pipeline CPU design that reduces the performance penalty for conditional instructions. (i) Multiple hard disks combined for performance and/or reliability. Choices A. ALU B. Branch prediction C. CISC D. Decoder E. DRAM F. Exception G. Flush H. Hard Disk I. Interrupt J. Multi-cycle K. Mux L. Page Table M. Pipeline N. RAID O. Return Address Stack P. RISC Q. Single-cycle R. Spatial Locality S. SRAM T. Stall U. Temporal Locality V. XOR-gate W. 这个选项只是在这里吓唬四个不认识中文的学生 ECE 550 Final Exam Page 2 of 13
3 Question 2 [16]: For each of the networking tasks below, identify which protocol is used to achieve it on the modern internet. All choices will be used at least once; some will be used twice. (a) Routing a packet from point to point, getting closer to the destination with each hop. (b) Transporting frames of data between connected systems on a single network. (c) Providing configurable addresses to network interfaces. Choices A. Ethernet B. IP C. TCP D. DNS E. HTTP (d) Providing hard-coded, non-configurable unique IDs to network interfaces. (e) Regulating flow of traffic in response to network conditions. (f) Translating human-friendly names and IP addresses. (g) Acknowledging received data and re-transmitting sent data that didn t get acknowledged. (h) A Protocol to Transport HyperText. ECE 550 Final Exam Page 3 of 13
4 Question 3 [18]: Briefly answer these questions pertaining to operating systems. (a) In the ext2 file system, why do inodes contain a mix of direct, single-indirect, double-indirect, and tripleindirect block pointers? Why not just use direct block pointers? (b) What is one reason why a process might be removed from the run queue of the operating system s process scheduler? (c) Describe the process of booting a PC from initial power-on to the point where the kernel is loaded. ECE 550 Final Exam Page 4 of 13
5 Question 4 [18]: Convert the following C code to MIPS assembly language. Assume standard MIPS calling conventions, and that this code is in a void function that requires no stack frame. C code Equivalent MIPS code Comment int a[10]; (not shown) // assume &a[0] is in $4 (a) [1] int n = 9; // assume n is $5 (b) [1] int* p = a+3; // assume p is $6 (c) [1] int r = p[0]; // assume r is $7 (d) [1] int s = n + r; // assume s is $8 (e) [1] p[1] = s; (f) [3] if (n<r) {n=0;} // can use $9 for a temp value // can be multiple instructions (g) [1] return; ECE 550 Final Exam Page 5 of 13
6 Question 5 [12]: Consider the following hardware which implements a finite state machine. This state machine has 3 states, and uses a 1-hot encoding. It has one input. Draw the edges of the state transition diagram for this FSM: A B C ECE 550 Final Exam Page 6 of 13
7 Question 6 [15]: You are a CPU engineer and have a choice between the two cache designs given below. Design A Design B L1 layout 64kB, 2-way set associative 128kB, 4-way set associative L1 access latency 1 cycle 3 cycles L1 miss rate 20% 5% L2 layout 1 MB, 4-way set associative 4 MB, 8-way set associative L2 access latency 10 cycles 16 cycles L2 miss rate 5% 2% Main memory latency 200 cycles 200 cycles (a) [6] What is the effective access time for each? (b) [4] After further study, your team has found a design tradeoff. It turns out that Design B takes up so much die space that the CPU s branch predictor would have to be simplified to compensate. The CPU you re building has a long pipeline, and branch mispredictions incur a 10-cycle penalty. With the full branch predictor that s possible with Design A, just 5% of branches will be mispredicted. The compromised branch predictor needed in Design B will have a 10% misprediction rate. Based on this, what will the average time penalty for branching be in Design A vs. Design B? (c) [5] Assume that 25% of instructions are memory loads/stores and thus have the average execution time found in part (a). Further assume that 10% of instructions are branches and thus have the average execution time found in part (b). All other instructions finish in exactly 1 cycle. Which design yields better average-case performance? Show your work. ECE 550 Final Exam Page 7 of 13
8 Question 7 [20]: Assume a 16-bit machine with a 2-way set associative 8kB cache with 16-byte blocks. Fill in the attributes below. HINT: Use the powers of two table on the reference sheet to simplify the math. (a) [1] How many frames does it have? (b) [1] How many sets does it have? (c) [1] Number of bits for the offset field of a memory address: (d) [1] Number of bits for the index field of a memory address: (e) [1] Number of bits for the tag field of a memory address: [15] The table below shows a memory access pattern, and set indexes are computed for you. Assuming an LRU replacement policy and that all frames are initially invalid, indicate if the access is a cache hit or a miss. For misses, indicate if the miss is compulsory (due to initial boot-up) or conflict (misses due to the limited associativity of the cache). Capacity misses will not be encountered. Address (hex) Tag Index Offset Hit/miss? (f) 0001 Hit Miss (compulsory) Miss (conflict) (g) 1003 Hit Miss (compulsory) Miss (conflict) (h) 2005 Hit Miss (compulsory) Miss (conflict) (i) 0023 Hit Miss (compulsory) Miss (conflict) (j) 1001 Hit Miss (compulsory) Miss (conflict) (k) 0005 Hit Miss (compulsory) Miss (conflict) (l) 0023 Hit Miss (compulsory) Miss (conflict) (m) 2021 Hit Miss (compulsory) Miss (conflict) (n) 1003 Hit Miss (compulsory) Miss (conflict) ECE 550 Final Exam Page 8 of 13
9 Question 8 [20]: When I moved into my office here at Duke, I inherited an awesome old laptop from the previous tenant. It s a Pentium III (a 32-bit CPU) with 128MB of RAM. The page size on an x86 machine is 4kB. Let s determine some characteristics about this thing. The first problem is done for you. Write large numeric answers in the form of 2 n rather than trying to figure out what that corresponds to (e.g., don t write out 2048; write 2 11 instead). Remember 2 10 =1k, 2 20 =1M, and 2 30 =1G. (a) Is it absurdly heavy? Is it thicker than the textbook for this course? Yes and yes. (b) [4] How many virtual pages are there per process? (c) [4] How many bits are needed to represent the page offset? (d) [4] How many bits are needed to represent the virtual page number? (e) [4] How many bits are needed to represent a physical address? (f) [4] How many bits are needed to represent the physical page number? ECE 550 Final Exam Page 9 of 13
10 Question 9 [21]: I/O. (a) [7] Describe the difference between polling and interrupts. (b) [7] What is DMA and how does it enhance throughput beyond having interrupts alone? (c) [7] For a hard drive, why is it better to do few large I/Os than many small I/Os? ECE 550 Final Exam Page 10 of 13
11 Question 10 [20]: Pipelining. Assume the 5-stage pipeline we ve used in class (F, D, X, M, W). Assume the pipeline forwards/bypasses operands whenever possible and stalls only when needed to satisfy a RAW dependence that can t be forwarded/bypassed. Assume all loads and stores hit in the 1-cycle data cache. Complete a pipeline diagram for the first 7 cycles of the code shown, and assume that the first instruction is in the Fetch (F) stage in cycle 1, as shown. addi $1, $1, 4 andi $2, $2, 0x20 lw $3, 0($1) sub $4, $4, $3 move $6, $ F Question 10 [20]: The year is You need to run an astrophysics simulation which has a very complex control flow pattern (lots of branches). Your choices are the two x86 chips of the era: the AMD Athlon (which had a 10- stage pipeline and ran at 1GHz) and the Intel Pentium IV (which had a 20-stage pipeline and was clocked at 1.3GHz). Why might the Athlon give better performance despite having a slower clock rate? ECE 550 Final Exam Page 11 of 13
12 Question 11 [20]: List four attributes or features that a modern x86 CPU has that the classic MIPS CPU doesn t. (a) (b) (c) (d) Extra credit [10]: Write assembly code that will swap the values of two registers (i.e., if the registers started with values 19 and 42, they d end with values 42 and 19 respectively). However, you MUST NEVER MODIFY ANYTHING EXCEPT THE REGISTERS IN QUESTION. So you can t change other registers or write to memory. 5 points will be awarded for a MIPS solution swapping registers $1 and $2, and 10 points will be awarded for an x86 solution swapping registers eax and ebx. ECE 550 Final Exam Page 12 of 13
13 ECE/CS 250 EXAM REFERENCE SHEET (You may keep or discard this sheet) MIPS info Powers of two n 2 n , , , , , , ,536 The Intel x86 instruction set AAA CMOVE CVTPS2DQ FCMOVU FNOP GS JNGE MFENCE MULSS PCMPISTRM PMULLD PUNPCKLDQ SETC STOSB AAD CMOVG CVTPS2PD FCOM FNSAVE HADDPD JNL MINPD MWAIT PEXTRB PMULLW PUNPCKLQDQ SETE STOSD AAM CMOVGE CVTPS2PI FCOM2 FNSETPM HADDPS JNLE MINPS NEG PEXTRD PMULUDQ PUNPCKLWD SETG STOSW AAS CMOVL CVTSD2SI FCOMI FNSTCW HINT_NOP JNO MINSD NOP PEXTRQ POP PUSH SETGE STR ADC CMOVLE CVTSD2SS FCOMIP FNSTENV HLT JNP MINSS NOT PEXTRW POPA PUSHA SETL SUB ADD CMOVNA CVTSI2SD FCOMP FNSTSW HSUBPD JNS MONITOR OR PHADDD POPAD PUSHAD SETLE SUBPD ADDPD CMOVNAE CVTSI2SS FCOMP3 FPATAN HSUBPS JNZ MOV ORPD PHADDSW POPCNT PUSHF SETNA SUBPS ADDPS CMOVNB CVTSS2SD FCOMP5 FPREM ICEBP JO MOVAPD ORPS PHADDW POPF PUSHFD SETNAE SUBSD ADDSD CMOVNBE CVTSS2SI FCOMPP FPREM1 IDIV JP MOVAPS OUT PHMINPOSUW POPFD PXOR SETNB SUBSS ADDSS CMOVNC CVTTPD2DQ FCOS FPTAN IMUL JPE MOVBE OUTS PHSUBD POR RCL SETNBE SYSENTER ADDSUBPD CMOVNE CVTTPD2PI FDECSTP FRNDINT IN JPO MOVD OUTSB PHSUBSW PREFETCHNTA RCPPS SETNC SYSEXIT ADDSUBPS CMOVNG CVTTPS2DQ FDIV FRSTOR INC JS MOVDDUP OUTSD PHSUBW PREFETCHT0 RCPSS SETNE TEST ADX CMOVNGE CVTTPS2PI FDIVP FS INS JZ MOVDQ2Q OUTSW PINSRB PREFETCHT1 RCR SETNG UCOMISD AMX CMOVNL CVTTSD2SI FDIVR FSAVE INSB LAHF MOVDQA PABSB PINSRD PREFETCHT2 RDMSR SETNGE UCOMISS AND CMOVNLE CVTTSS2SI FDIVRP FSCALE INSD LAR MOVDQU PABSD PINSRQ PSADBW RDPMC SETNL UD ANDNPD CMOVNO CWD FFREE FSIN INSERTPS LDDQU MOVHLPS PABSW PINSRW PSHUFB RDTSC SETNLE UD2 ANDNPS CMOVNP CWDE FFREEP FSINCOS INSW LDMXCSR MOVHPD PACKSSDW PMADDUBSW PSHUFD RDTSCP SETNO UNPCKHPD ANDPD CMOVNS DAA FIADD FSQRT INT LDS MOVHPS PACKSSWB PMADDWD PSHUFHW REP SETNP UNPCKHPS ANDPS CMOVNZ DAS FICOM FST INT1 LEA MOVLHPS PACKUSDW PMAXSB PSHUFLW REPE SETNS UNPCKLPD ARPL CMOVO DEC FICOMP FSTCW INTO LEAVE MOVLPD PACKUSWB PMAXSD PSHUFW REPNE SETNZ UNPCKLPS BLENDPD CMOVP DIV FIDIV FSTENV INVD LES MOVLPS PADDB PMAXSW PSIGNB REPNZ SETO VERR BLENDPS CMOVPE DIVPD FIDIVR FSTP INVEPT LFENCE MOVMSKPD PADDD PMAXUB PSIGND REPZ SETP VERW BLENDVPD CMOVPO DIVPS FILD FSTP1 INVLPG LFS MOVMSKPS PADDQ PMAXUD PSIGNW RETF SETPE VMCALL BLENDVPS CMOVS DIVSD FIMUL FSTP8 INVVPID LGDT MOVNTDQ PADDSB PMAXUW PSLLD RETN SETPO VMCLEAR BOUND CMOVZ DIVSS FINCSTP FSTP9 IRET LGS MOVNTDQA PADDSW PMINSB PSLLDQ ROL SETS VMLAUNCH BSF CMP DPPD FINIT FSTSW IRETD LIDT MOVNTI PADDUSB PMINSD PSLLQ ROR SETZ VMPTRLD BSR CMPPD DPPS FIST FSUB JA LLDT MOVNTPD PADDUSW PMINSW PSLLW ROUNDPD SFENCE VMPTRST BSWAP CMPPS DS FISTP FSUBP JAE LMSW MOVNTPS PADDW PMINUB PSRAD ROUNDPS SGDT VMREAD BT CMPS EMMS FISTTP FSUBR JB LOCK MOVNTQ PALIGNR PMINUD PSRAW ROUNDSD SHL VMRESUME BTC CMPSB ENTER FISUB FSUBRP JBE LODS MOVQ PAND PMINUW PSRLD ROUNDSS SHLD VMWRITE BTR CMPSD ES FISUBR FTST JC LODSB MOVQ2DQ PANDN PMOVMSKB PSRLDQ RSM SHR VMXOFF BTS CMPSS EXTRACTPS FLD FUCOM JCXZ LODSD MOVS PAUSE PMOVSXBD PSRLQ RSQRTPS SHRD VMXON CALL CMPSW F2XM1 FLD1 FUCOMI JE LODSW MOVSB PAVGB PMOVSXBQ PSRLW RSQRTSS SHUFPD WAIT CALLF CMPXCHG FABS FLDCW FUCOMIP JECXZ LOOP MOVSD PAVGW PMOVSXBW PSUBB SAHF SHUFPS WBINVD CBW CMPXCHG8B FADD FLDENV FUCOMP JG LOOPE MOVSHDUP PBLENDVB PMOVSXDQ PSUBD SAL SIDT WRMSR CDQ COMISD FADDP FLDL2E FUCOMPP JGE LOOPNE MOVSLDUP PBLENDW PMOVSXWD PSUBQ SALC SLDT XADD CLC COMISS FBLD FLDL2T FWAIT JL LOOPNZ MOVSS PCMPEQB PMOVSXWQ PSUBSB SAR SMSW XCHG CLD CPUID FBSTP FLDLG2 FXAM JLE LOOPZ MOVSW PCMPEQD PMOVZXBD PSUBSW SBB SQRTPD XGETBV CLFLUSH CRC32 FCHS FLDLN2 FXCH JMP LSL MOVSX PCMPEQQ PMOVZXBQ PSUBUSB SCAS SQRTPS XLAT CLI CS FCLEX FLDPI FXCH4 JMPF LSS MOVUPD PCMPEQW PMOVZXBW PSUBUSW SCASB SQRTSD XLATB CLTS CVTDQ2PD FCMOVB FLDZ FXCH7 JNA LTR MOVUPS PCMPESTRI PMOVZXDQ PSUBW SCASD SQRTSS XOR CMC CVTDQ2PS FCMOVBE FMUL FXRSTOR JNAE MASKMOVDQU MOVZX PCMPESTRM PMOVZXWD PTEST SCASW SS XORPD CMOVA CVTPD2DQ FCMOVE FMULP FXSAVE JNB MASKMOVQ MPSADBW PCMPGTB PMOVZXWQ PUNPCKHBW SETA STC XORPS CMOVAE CVTPD2PI FCMOVNB FNCLEX FXTRACT JNBE MAXPD MUL PCMPGTD PMULDQ PUNPCKHDQ SETAE STD XRSTOR CMOVB CVTPD2PS FCMOVNBE FNDISI FYL2X JNC MAXPS MULPD PCMPGTQ PMULHRSW PUNPCKHQDQ SETALC STI XSAVE CMOVBE CVTPI2PD FCMOVNE FNENI FYL2XP1 JNE MAXSD MULPS PCMPGTW PMULHUW PUNPCKHWD SETB STMXCSR XSETBV CMOVC CVTPI2PS FCMOVNU FNINIT GETSEC JNG MAXSS MULSD PCMPISTRI PMULHW PUNPCKLBW SETBE STOS ECE 550 Final Exam Page 13 of 13
Intel Xeon Scalable Processor
Intel Xeon Scalable Processor Instruction Throughput and Latency August 2017 Revision 1.1 336289-002 Document ID: 336289-002 Revision Number: 1.1 Revision History Document ID Description Date 336289-001
More informationP. Specht s Liste der 8-Byte-Floatingpoint Befehle des masm32 Assemblers COMPACTED INTEL PENTIUM-4 PRESCOTT (April 2004) DPFP COMMAND SET
P. Specht s Liste der 8-Byte-Floatingpoint Befehle des masm32 Assemblers COMPACTED INTEL PENTIUM-4 PRESCOTT (April 2004) DPFP COMMAND SET ADDPD ADDSD ADDSUBPD ANDPD ANDNPD CMPPD Add Packed Double-precision
More information80x87 Instruction Set (x87 - Pentium)
80x87 Instruction Set (x87 - Pentium) Legend: General: reg = floating point register, st(0), st(1)... st(7) mem = memory address mem32 = memory address of 32-bit item mem64 = memory address of 64-bit item
More informationIntroduction to Assembler. Andy Keep
Introduction to Assembler Andy Keep Assembly Language What is assembly language? Roughly one-to-one mapping to machine code Provides full access to processor Why do we still need it? Low-level operations,
More information80x86 Integer Instruction Set Timings ( Pentium)
80x86 Integer Instruction Set Timings (8088 - Pentium) Source: http://www.quantasm.com/opcode_i.html Legend: General acc = AL, AX or EAX unless specified otherwise reg = any general register r8 = any 8-bit
More informationInstruction Set Progression. from MMX Technology through Streaming SIMD Extensions 2
Instruction Set Progression from MMX Technology through Streaming SIMD Extensions 2 This article summarizes the progression of change to the instruction set in the Intel IA-32 architecture, from MMX technology
More informationThe 80x86 Instruction Set
Appendix D: The 80x86 Instruction Set The 80x86 Instruction Set Appendix D The following three tables discuss the integer/control, floating point, and MMX instruction sets. This document uses the following
More information8086 INSTRUCTION SET
8086 INSTRUCTION SET Complete 8086 instruction set Quick reference: AAA AAD AAM AAS ADC ADD AND CALL CBW CLC CLD CLI CMC CMP CMPSB CMPSW CWD DAA DAS DEC DIV HLT IDIV IMUL IN INC INT INTO I JA JAE JB JBE
More informationECE/CS 250 Computer Architecture. Summer 2018
ECE/CS 250 Computer Architecture Summer 2018 Intel x86 Tyler Bletsch Duke University Basic differences MIPS Word size Originally: 32-bit (MIPS I in 1985) Now: 64-bit (MIPS64 in 1999) Design RISC CISC ALU
More informationECE 550D Fundamentals of Computer Systems and Engineering. Fall 2016
ECE 550D Fundamentals of Computer Systems and Engineering Fall 2016 Intro to Intel x86 Tyler Bletsch Duke University Basic differences MIPS Word size Originally: 32-bit (MIPS I in 1985) Now: 64-bit (MIPS64
More informationPaul Cockshott and Kenneth Renfrew. SIMD Programming. Manual for Linux. and Windows. Springer
Paul Cockshott and Kenneth Renfrew SIMD Programming Manual for Linux and Windows Springer List of Tables List of Figures List of Algorithms Introduction xvii xix xxiii xxv I SIMD Programming 1 Paul Cockshott
More informationUNIT II 16 BIT MICROPROCESSOR INSTRUCTION SET AND ASSEMBLY LANGUAGE PROGRAMMING. The Intel 8086 Instruction Set
UNIT II 16 BIT MICROPROCESSOR INSTRUCTION SET AND ASSEMBLY LANGUAGE PROGRAMMING The Intel 8086 Instruction Set 1.Explain Addressing Modes of 8086? ADDRESSING MODES Implied - the data value/data address
More informationAPPENDIX C INSTRUCTION SET DESCRIPTIONS
APPENDIX C INSTRUCTION SET DESCRIPTIONS This appendix provides reference information for the 80C186 Modular Core family instruction set. Tables C-1 through C-3 define the variables used in Table C-4, which
More information3.1 DATA MOVEMENT INSTRUCTIONS 45
3.1.1 General-Purpose Data Movement s 45 3.1.2 Stack Manipulation... 46 3.1.3 Type Conversion... 48 3.2.1 Addition and Subtraction... 51 3.1 DATA MOVEMENT INSTRUCTIONS 45 MOV (Move) transfers a byte, word,
More informationINDEX. Numbers. Symbols
INDEX Numbers 2 to the x minus 1, 402 8-bit excess-127 exponent, 93 8-bit registers, 9 16-bit registers, 9 80x86 memory addressing modes, 111 96-bit rcl and rcr operations, 508 128-bit by 32-bit division,
More informationref.x86asm.net coder64 edition
ref.x86asm.net coder64 edition 00 r L ADD r/m8 r8 o..szapc o..szapc Add 01 r L ADD r/m16/32/64 r16/32/64 o..szapc o..szapc Add 02 r ADD r8 r/m8 o..szapc o..szapc Add 03 r ADD r16/32/64 r/m16/32/64 o..szapc
More informationZ80 TO 8086 TRANSLATOR
Z80 TO 8086 TRANSLATOR TRANS - 1 The Seattle Computer Products Z80 to 8086 Translator accepts as input a Z80 source file written using Zilog/Mostek mnemonics and converts it to an 8086 source file in a
More informationCS-202 Microprocessor and Assembly Language
CS-202 Microprocessor and Assembly Language Lecture 2 Introduction to 8086 Assembly Language Dr Hashim Ali Spring - 2019 Department of Computer Science and Engineering HITEC University Taxila!1 Lecture
More informationAm186 and Am188 Family Instruction Set Manual. February, 1997
Am186 and Am188 Family Instruction Set Manual February, 1997 1997 Advanced Micro Devices, Inc. Advanced Micro Devices reserves the right to make changes in its products without notice in order to improve
More informationUS06CCSC04: Introduction to Microprocessors and Assembly Language UNIT 3: Assembly Language Instructions II
Unconditional & Conditional JUMP instructions: Conditional JUMP instructions: JA/JNBE Jump if above / Jump if not Below or Equal These two mnemonics represent the same instruction. The term above and below
More informationx64 Cheat Sheet Fall 2014
CS 33 Intro Computer Systems Doeppner x64 Cheat Sheet Fall 2014 1 x64 Registers x64 assembly code uses sixteen 64-bit registers. Additionally, the lower bytes of some of these registers may be accessed
More informationReal Arithmetic. Fractional binary numbers. Fractional binary numbers examples. Binary real numbers
Fractional binary numbers 2 i 2 i 1 Real Arithmetic Computer Organization and Assembly Languages g Yung-Yu Chuang 4 2 1 b i b i 1 b 2 b 1 b 0. b 1 b 2 b 3 b j Representation 1/2 1/4 1/8 2 j Bits to right
More informationEXPERIMENT WRITE UP. LEARNING OBJECTIVES: 1. Get hands on experience with Assembly Language Programming 2. Write and debug programs in TASM/MASM
EXPERIMENT WRITE UP AIM: Assembly language program to search a number in given array. LEARNING OBJECTIVES: 1. Get hands on experience with Assembly Language Programming 2. Write and debug programs in TASM/MASM
More informationGAS IA-32 Assembly Language Programming Floating Point Unit Instructions Tony Richardson University of Evansville April 19, 2007
GAS IA-32 Assebly Language Pogaing Floating Point Unit Instuctions Tony Richadson Univesity of Evansville Apil 19, 2007 The following table contains a patial list of IA-32 assebly floating point neonics.
More informationOverview of architecture Interfacing with Data types, instructions. Programming.
Overview of architecture 8087. Interfacing with 8086. Data types, instructions. Programming. Module 4 learning unit 10: Contents Architecture of 8087 Data types Interfacing Instructions and programming
More informationM80C286 HIGH PERFORMANCE CHMOS MICROPROCESSOR WITH MEMORY MANAGEMENT AND PROTECTION
HIGH PERFORMANCE CHMOS MICROPROCESSOR WITH MEMORY MANAGEMENT AND PROTECTION Military Y High Speed CHMOS III Technology Pin for Pin Clock for Clock and Functionally Compatible with the HMOS M80286 Y 10
More informationLAB WORK NO. 11 THE USAGE OF THE MATHEMATICAL COPROCESSOR
LAB WORK NO. THE USAGE OF THE MATHEMATICAL COPROCESSOR. Object of laboratory The purpose of this lab is to familiarize the user with the mathematical coprocessor s functions, its instructions for real
More informationArchitecture and components of Computer System Execution of program instructions
Execution of program instructions Microprocessor realizes each program instruction as the sequence of the following simple steps: 1. fetch next instruction or its part from memory and placing it in the
More informationQ1: Multiple choice / 20 Q2: Protected mode memory accesses
16.317: Microprocessor-Based Systems I Summer 2012 Exam 2 August 1, 2012 Name: ID #: For this exam, you may use a calculator and one 8.5 x 11 double-sided page of notes. All other electronic devices (e.g.,
More informationINSTRUCTOR: ABDULMUTTALIB A. H. ALDOURI
Note: PUSHF / POPF have no operands The figure below shows that if (SS) = 3000H, (SP) = 0042H, so the execution of POP CX loads CX by the word 4050H form the stack segment. The SP is incremented by 2.
More informationIFE: Course in Low Level Programing. Lecture 6
IFE: Course in Low Level Programing Lecture 6 Instruction Set of Intel x86 Microprocessors Conditional jumps Jcc jump on condition cc, JMP jump always, CALL call a procedure, RET return from procedure,
More informationCS802 Parallel Processing Class Notes
CS802 Parallel Processing Class Notes MMX Technology Instructor: Dr. Chang N. Zhang Winter Semester, 2006 Intel MMX TM Technology Chapter 1: Introduction to MMX technology 1.1 Features of the MMX Technology
More informationECE 498 Linux Assembly Language Lecture 3
ECE 498 Linux Assembly Language Lecture 3 Vince Weaver http://www.eece.maine.edu/ vweaver vincent.weaver@maine.edu 20 November 2012 Statically Linked C Hello-World Disassembly of section.text : 08048320
More informationUNIT III 8086 Microprocessor. Lecture 1
UNIT III 8086 Microprocessor Lecture 1 Features of 8086 Microprocessor (RGPV 2013) The 8086, announced in 1978, was the first 16-bit microprocessor introduced by Intel Corporation. 1) 8086 has 16-bit ALU;
More informationLABORATORY WORK NO. 7 FLOW CONTROL INSTRUCTIONS
LABORATORY WORK NO. 7 FLOW CONTROL INSTRUCTIONS 1. Object of laboratory The x86 microprocessor family has a large variety of instructions that allow instruction flow control. We have 4 categories: jump,
More information2 The Quick Guide to HLA
2 The Quick Guide to HLA 2.1 Overview This guide is designed to help those who are already familiar with x86 assembly language programming to get up to speed with HLA as rapidly as possible. HLA was designed
More informationFigure 8-1. x87 FPU Execution Environment
Sign 79 78 64 63 R7 Exponent R6 R5 R4 R3 R2 R1 R0 Data Registers Significand 0 15 Control Register 0 47 Last Instruction Pointer 0 Status Register Last Data (Operand) Pointer Tag Register 10 Opcode 0 Figure
More informationIntroduction to 8086 Assembly
Introduction to 8086 Assembly Lecture 5 Jump, Conditional Jump, Looping, Compare instructions Labels and jumping (the jmp instruction) mov eax, 1 add eax, eax jmp label1 xor eax, eax label1: sub eax, 303
More informationInline Assembler. Willi-Hans Steeb and Yorick Hardy. International School for Scientific Computing
Inline Assembler Willi-Hans Steeb and Yorick Hardy International School for Scientific Computing e-mail: steebwilli@gmail.com Abstract We provide a collection of inline assembler programs. 1 Using the
More informationBAHAR DÖNEMİ MİKROİŞLEMCİLER LAB4 FÖYÜ
LAB4 RELATED INSTRUCTIONS: Compare, division and jump instructions CMP REG, memory memory, REG REG, REG memory, immediate REG, immediate operand1 - operand2 Result is not stored anywhere, flags are set
More informationBranching and Looping
Branching and Looping Ray Seyfarth August 10, 2011 Branching and looping So far we have only written straight line code Conditional moves helped spice things up In addition conditional moves kept the pipeline
More information80C BIT MATH COPROCESSOR
80-BIT MATH COPROCESSOR Y High Performance 80-Bit Internal Architecture Y Implements ANSI IEEE Standard 754-1985 for Binary Floating-Point Arithmetic Y Upward Object-Code Compatible from 8087 Y Fully Compatible
More informationSelected Pentium Instructions. Chapter 12 S. Dandamudi
Selected Pentium Instructions Chapter 12 S. Dandamudi Outline Status flags Zero flag Carry flag Overflow flag Sign flag Auxiliary flag Parity flag Arithmetic instructions Multiplication instructions Division
More informationThe higher the values of above, the more powerful the CPU. Microprocessors are categorized in additional as: RISC or CISC.
MICROPROCESSOR: A silicon chip that contains a CPU. A microprocessor (sometimes abbreviated μp) is a digital electronic component with miniaturized transistors on a single semiconductor integrated circuit
More informationIA-32 Intel Architecture Software Developer s Manual
IA-32 Intel Architecture Software Developer s Manual Volume 1: Basic Architecture NOTE: The IA-32 Intel Architecture Software Developer s Manual consists of three volumes: Basic Architecture, Order Number
More informationMATH CO-PROCESSOR Rajiv R Bhandari
MATH CO-PROCESSOR 8087 1 Rajiv R Bhandari Compatible Processor and Coprocessor Processors 1. 8086 & 8088 2. 80286 3. 80386DX 4. 80386SX 5. 80486DX 6. 80486SX Coprocessors 1. 8087 2. 80287,80287XL 3. 80287,80387DX
More informationJump instructions. Unconditional jumps Direct jump. do not change flags. jmp label
do not change flags Unconditional jumps Direct jump jmp label Jump instructions jmp Continue xor eax,eax Continue: xor ecx,ecx Machine code: 0040340A EB 02 0040340C 33 C0 0040340E 33 C9 displacement =
More informationMILITARY Intel386 TM HIGH PERFORMANCE 32-BIT MICROPROCESSOR WITH INTEGRATED MEMORY MANAGEMENT
MILITARY Intel386 TM HIGH PERFORMANCE 32-BIT MICROPROCESSOR WITH INTEGRATED MEMORY MANAGEMENT Y Y Y Y Flexible 32-Bit Microprocessor 8 16 32-Bit Data Types 8 General Purpose 32-Bit Registers Very Large
More informationNASM The Netwide Assembler
NASM The Netwide Assembler version 0.98.34 -~~..~:#;L.-:#;L,.-.~:#:;.T -~~.~:;..~:;. E8+U *T +U *T#.97 *L E8+ *;T *;, D97 *L.97 *L "T;E+:, D9 *L *L H7 I# T7 I# "*:. H7 I# I# U: :8 *#+, :8 T, 79 U: :8 :8,#B..IE,
More informationTUTORIAL. Emulador Emu8086 do. Microprocessador 8086
1 TUTORIAL Emulador Emu8086 do Microprocessador 8086 2 8086 Assembler Tutorial for Beginners (Part 1) This tutorial is intended for those who are not familiar with assembler at all, or have a very distant
More informationThe 8086 / / / Instruction Set
The 8086 / 80286 / 80386 / 80486 Instruction Set This HTML version of the file intel.doc from the PC Game Programmer's guide was produced by Zack Smith, fbui@comcast.net. Fancy HTML modifications are copyright
More informationIntel Instruction Set (gas)
Intel Instruction Set (gas) These slides provide the gas format for a subset of the Intel processor instruction set, including: Operation Mnemonic Name of Operation Syntax Operation Examples Effect on
More informationM80C BIT CHMOS III NUMERIC PROCESSOR EXTENSION
80-BIT CHMOS III NUMERIC PROCESSOR EXTENSION Military Y High Performance 80-Bit Internal Architecture Y Implements ANSI IEEE Standard 754-1985 for Binary Floating-Point Arithmetic Y Implements Extended
More informationWeek /8086 Microprocessor Programming
Week 5 8088/8086 Microprocessor Programming Multiplication and Division Multiplication Multiplicant Operand Result (MUL or IMUL) (Multiplier) Byte * Byte AL Register or memory Word * Word AX Register or
More informationPreliminary Information. AMD Duron Processor Model 7 Revision Guide
AMD Duron Processor Model 7 Revision Guide Publication # 24806 Rev: E Issue Date: October 2003 2002, 2003 Advanced Micro Devices, Inc. All rights reserved. The contents of this document are provided in
More informationPreliminary Information. AMD Athlon Processor Model 6 Revision Guide
AMD Athlon Processor Model 6 Revision Guide Publication # 24332 Rev: E Issue Date: December 2002 2001, 2002 Advanced Micro Devices, Inc. All rights reserved. The contents of this document are provided
More informationFloating Point Instructions
Floating Point Instructions Ned Nedialkov McMaster University Canada SE 3F03 March 2013 Outline Storing data Addition Subtraction Multiplication Division Comparison instructions Some more instructions
More informationLecture Notes on Assembly Language - J. Vaughan
Lecture Notes on Assembly Language - 18. Shifts and Rotates SHL, SHR: Bitwise Logical Shifts SHL r/m8,1 ; D0 /4 SHL r/m8,cl ; D2 /4 SHL r/m8,imm8 SHL r/m16,1 ; C0 /4 ib ; o16 D1 /4 SHL r/m16,cl ; o16 D3
More informationEx: Write a piece of code that transfers a block of 256 bytes stored at locations starting at 34000H to locations starting at 36000H. Ans.
INSTRUCTOR: ABDULMUTTALIB A H ALDOURI Conditional Jump Cond Unsigned Signed = JE : Jump Equal JE : Jump Equal ZF = 1 JZ : Jump Zero JZ : Jump Zero ZF = 1 JNZ : Jump Not Zero JNZ : Jump Not Zero ZF = 0
More informationSelection and Iteration. Chapter 7 S. Dandamudi
Selection and Iteration Chapter 7 S. Dandamudi Outline Unconditional jump Compare instruction Conditional jumps Single flags Unsigned comparisons Signed comparisons Loop instructions Implementing high-level
More informationLecture (08) x86 programming 7
Lecture (08) x86 programming 7 By: Dr. Ahmed ElShafee 1 Conditional jump: Conditional jumps are executed only if the specified conditions are true. Usually the condition specified by a conditional jump
More informationComputer Architecture..Second Year (Sem.2).Lecture(4) مدرس المادة : م. سندس العزاوي... قسم / الحاسبات
مدرس المادة : م. سندس العزاوي... قسم / الحاسبات... - 26 27 Assembly Level Machine Organization Usage of AND, OR, XOR, NOT AND : X Y X AND Y USE : to chick any bit by change ( to ) or ( to ) EX : AX = FF5
More informationcomplement) Multiply Unsigned: MUL (all operands are nonnegative) AX = BH * AL IMUL BH IMUL CX (DX,AX) = CX * AX Arithmetic MUL DWORD PTR [0x10]
The following pages contain references for use during the exam: tables containing the x86 instruction set (covered so far) and condition codes. You do not need to submit these pages when you finish your
More informationMicrokernel Construction
Microkernel Construction Kernel Entry / Exit Nils Asmussen 05/04/2017 1 / 45 Outline x86 Details Protection Facilities Interrupts and Exceptions Instructions for Entry/Exit Entering NOVA Leaving NOVA 2
More informationMicroprocessors and Microcontrollers
Microprocessors and Microcontrollers Prepared By Dr. M. Moustafa ١ CHAPTER ONE Microprocessors and Microcontrollers Prepared By Dr. M. Moustafa ٢ 1. Introduction: A brief comparison between Microprocessors
More informationLab 6: Conditional Processing
COE 205 Lab Manual Lab 6: Conditional Processing Page 56 Lab 6: Conditional Processing Contents 6.1. Unconditional Jump 6.2. The Compare Instruction 6.3. Conditional Jump Instructions 6.4. Finding the
More informationControl. Young W. Lim Mon. Young W. Lim Control Mon 1 / 16
Control Young W. Lim 2016-11-21 Mon Young W. Lim Control 2016-11-21 Mon 1 / 16 Outline 1 Introduction References Condition Code Accessing the Conditon Codes Jump Instructions Translating Conditional Branches
More informationAssembly Language LAB
Assembly Language LAB Islamic University Gaza Engineering Faculty Department of Computer Engineering 2013 ECOM 2125: Assembly Language LAB Created by: Eng. Ahmed M. Ayash Modified and Presented By: Eihab
More informationIt is possible to define a number using a character or multiple numbers (see instruction DB) by using a string.
1 od 5 17. 12. 2017 23:53 (https://github.com/schweigi/assembler-simulator) Introduction This simulator provides a simplified assembler syntax (based on NASM (http://www.nasm.us)) and is simulating a x86
More informationINTEL 汇编指令集 Intel Assemble Instruction Set
INTEL 汇编指令集 Intel Assemble Instruction Set CONTENT Intel 8086 Family Architecture Instruction Clock Cycle Calculation 8088/8086 Effective Address (EA) Calculation Task State Calculation FLAGS Intel 8086
More informationMicrokernel Construction
Kernel Entry / Exit SS2013 Control Transfer Microkernel User Stack A Address Space Kernel Stack A User Stack User Stack B Address Space Kernel Stack B User Stack 1. Kernel Entry (A) 2. Thread Switch (A
More informationCMSC 313 Lecture 05 [draft]
CMSC 313 Lecture 05 [draft] More on Conditional Jump Instructions Short Jumps vs Near Jumps Using Jump Instructions Logical (bit manipulation) Instructions AND, OR, NOT, SHL, SHR, SAL, SAR, ROL, ROR, RCL,
More informationUNIT III MICROPROCESSORS AND MICROCONTROLLERS MATERIAL OVERVIEW: Addressing Modes of Assembler Directives. Procedures and Macros
OVERVIEW: UNIT III Addressing Modes of 8086 Assembler Directives Procedures and Macros Instruction Set of 8086 Data Transfer Group Arithmetic Group Logical Instructions Rotate and Shift instructions Loop
More informationProgram controlled semiconductor device (IC) which fetches (from memory), decodes and executes instructions.
2 Microprocessor Program controlled semiconductor device (IC) which fetches (from memory), decodes and executes instructions. It is used as CPU (Central Processing Unit) in computers. 3 Microprocessor
More informationCS220. April 25, 2007
CS220 April 25, 2007 AT&T syntax MMX Most MMX documents are in Intel Syntax OPERATION DEST, SRC We use AT&T Syntax OPERATION SRC, DEST Always remember: DEST = DEST OPERATION SRC (Please note the weird
More information6.1 The 80x86 Flags Register Flags. 6.1 Which flags are the condition codes?
Thi d t t d ith F M k 4 0 2 The 80x86 Instruction Set Lab Manual, Chapter Six The Intel 80x86 processor family supports a wide variation of machine instructions. You can perform many operations with several
More informationMAHALAKSHMI ENGINEERING COLLEGE TIRUCHIRAPALLI UNIT III MULTIPROCESSOR CONFIGURATIONS PART A (2 Marks)
MAHALAKSHMI ENGINEERING COLLEGE TIRUCHIRAPALLI-621213. UNIT III MULTIPROCESSOR CONFIGURATIONS PART A (2 Marks) 1. What are tightly coupled systems or closely coupled systems? In a tightly coupled systems
More information.. Dr. A.P.J.Abdul Kalam
M i c r o p r o c e s s o r s a n d M i c r o c o n t r o l l e r s P a g e 1 Learning gives creativity Creativity leads to thinking Thinking provides knowledge Knowledge makes you great.. Dr. A.P.J.Abdul
More informationSETcc Set Byte on Condition
Leg 0F 97 SETA r/m8 M Valid Valid Set byte if above (CF=0 and ZF=0). REX + 0F 97 SETA r/m8* M Valid N.E. Set byte if above (CF=0 and ZF=0). 0F 93 SETAE r/m8 M Valid Valid Set byte if above or equal (CF=0).
More informationConditional Processing
١ Conditional Processing Computer Organization & Assembly Language Programming Dr Adnan Gutub aagutub at uqu.edu.sa Presentation Outline [Adapted from slides of Dr. Kip Irvine: Assembly Language for Intel-Based
More information8086 SOFTWARE ASPECTS
8086 SOFTWARE ASPECTS OBJECTIVE Draw the Architecture of 8086 Explain the various instructions and the addressing modes corresponds to them Brief out the assembler directives and their functions and write
More informationfrom WRITE GREAT CODE Volume 2: Thinking Low-Level, Writing High-Level ONLINE APPENDIX A The Minimal 80x86 Instruction Set by Randall Hyde
from WRITE GREAT CODE Volume 2: Thinking Low-Level, Writing High-Level ONLINE APPENDIX A The Minimal 80x86 Set by Randall Hyde San Francisco WRITE GREAT CODE, Volume 2. Copyright 2006 by Randall Hyde.
More informationIntel 8086: Instruction Set
IUST-EE (Chapter 6) Intel 8086: Instruction Set 1 Outline Instruction Set Data Transfer Instructions Arithmetic Instructions Bit Manipulation Instructions String Instructions Unconditional Transfer Instruction
More informationجامعة البلقاء التطبيقية
Specialization Course Number Course Title Credit Hours Theoretical Hours Practical Hours Computer Technology 20404214 Microprocessor Applications Lab 1 0 3 صفحة (1) من (37) Brief Course Description: Lab
More informationChapter 4: Data Movement Instructions. 4 1 MOV Revisited
Chapter 4: Data Movement Instructions 4 1 MOV Revisited In this chapter, the MOV instruction introduces machine language instructions available with various addressing modes and instructions. It may be
More informationIntel 8086 Family Architecture Instruction Clock Cycle Calculation /8086 Effective Address (EA) Calculation... 3
Intel 8086 Family Architecture..................... 3 Instruction Clock Cycle Calculation.................. 3 8088/8086 Effective Address (EA) Calculation............. 3 Task State Calculation.........................
More informationReal instruction set architectures. Part 2: a representative sample
Real instruction set architectures Part 2: a representative sample Some historical architectures VAX: Digital s line of midsize computers, dominant in academia in the 70s and 80s Characteristics: Variable-length
More informationPESIT Bangalore South Campus
INTERNAL ASSESSMENT TEST 2 Date : 02/04/2018 Max Marks: 40 Subject & Code : Microprocessor (15CS44) Section : IV A and B Name of faculty: Deepti.C Time : 8:30 am-10:00 am Note: Note: Answer any five complete
More informationThe x87 Floating-Point Unit
The x87 Floating-Point Unit Lecture 27 Intel Manual, Vol. 1, Chapter 8 Intel Manual, Vol. 2 Robb T. Koether Hampden-Sydney College Fri, Mar 27, 2015 Robb T. Koether (Hampden-Sydney College) The x87 Floating-Point
More informationPHI Learning Private Limited
MICROPROCESSORS The 8086/8088, 80186/80286, 80386/80486 and the Pentium Family Nilesh B. Bahadure Reader Department of Electronics and Telecommunication Engineering Bhilai Institute of Technology, Durg
More informationComputer Architecture CS372 Exam 3
Name: Computer Architecture CS372 Exam 3 This exam has 7 pages. Please make sure you have all of them. Write your name on this page and initials on every other page now. You may only use the green card
More informationECE550 PRACTICE Final
ECE550 PRACTICE Final This is a full length practice midterm exam. If you want to take it at exam pace, give yourself 175 minutes to take the entire test. Just like the real exam, each question has a point
More informationThe Art of Assembly Language
Hello, World of Assembly Language The Art of Assembly Language (Full Contents) The Art of Assembly Language Programming is going hard. In early 2003 this text will be available in published form from No
More informationDo not start the test until instructed to do so!
Instructions: Print your name in the space provided below. This examination is closed book and closed notes, aside from the permitted one-page formula sheet and the MIPS reference card. No calculators
More informationAPPLICATION NOTE. Architecture Background. Introduction. 80C286 Performance Advantages Over the AN111 Rev 1.00 Page 1 of 13.
APPLICATION NOTE Performance Advantages Over the Introduction The Intersil, operating at the same frequency as the, has performance advantages over the when executing 16-bit industry standard 80C86 or
More informationCS 261 Fall Mike Lam, Professor. x86-64 Data Structures and Misc. Topics
CS 261 Fall 2017 Mike Lam, Professor x86-64 Data Structures and Misc. Topics Topics Homogeneous data structures Arrays Nested / multidimensional arrays Heterogeneous data structures Structs / records Unions
More informationWeek /8086 Microprocessor Programming I
Week 4 8088/8086 Microprocessor Programming I Example. The PC Typewriter Write an 80x86 program to input keystrokes from the PC s keyboard and display the characters on the system monitor. Pressing any
More informationCS429: Computer Organization and Architecture
CS429: Computer Organization and Architecture Dr. Bill Young Department of Computer Sciences University of Texas at Austin Last updated: February 26, 2018 at 12:02 CS429 Slideset 8: 1 Controlling Program
More informationAssembly Language Tutorial
Assembly Language Tutorial Introduction What's new in the Assembler material After of one year that we've released the first Assembler material on-line. We've received a lot of e- mail where each people
More informationAPPLICATION NOTE. Introduction. Operating Speeds. Intersil 80C286 Performance Advantages Over the 80386SX. AN121 Rev 1.00 Page 1 of 15.
APPLICATION NOTE Intersil Performance Advantages Over the 80386S AN121 Rev 1.00 Introduction The Intersil, operating at the same frequency as the 80386S, can outperform the 80386S when executing software
More information