ECE 550 Fundamentals of Computer Systems and Engineering. Section 01 Fall 2016 Final Exam. Name: NetID:

Size: px
Start display at page:

Download "ECE 550 Fundamentals of Computer Systems and Engineering. Section 01 Fall 2016 Final Exam. Name: NetID:"

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

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

80x87 Instruction Set (x87 - Pentium)

80x87 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 information

Introduction to Assembler. Andy Keep

Introduction 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 information

80x86 Integer Instruction Set Timings ( Pentium)

80x86 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 information

Instruction Set Progression. from MMX Technology through Streaming SIMD Extensions 2

Instruction 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 information

The 80x86 Instruction Set

The 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 information

8086 INSTRUCTION SET

8086 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 information

ECE/CS 250 Computer Architecture. Summer 2018

ECE/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 information

ECE 550D Fundamentals of Computer Systems and Engineering. Fall 2016

ECE 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 information

Paul 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 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 information

UNIT 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 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 information

APPENDIX C INSTRUCTION SET DESCRIPTIONS

APPENDIX 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 information

3.1 DATA MOVEMENT INSTRUCTIONS 45

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

INDEX. Numbers. Symbols

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

ref.x86asm.net coder64 edition

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

Z80 TO 8086 TRANSLATOR

Z80 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 information

CS-202 Microprocessor and Assembly Language

CS-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 information

Am186 and Am188 Family Instruction Set Manual. February, 1997

Am186 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 information

US06CCSC04: Introduction to Microprocessors and Assembly Language UNIT 3: Assembly Language Instructions II

US06CCSC04: 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 information

x64 Cheat Sheet Fall 2014

x64 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 information

Real Arithmetic. Fractional binary numbers. Fractional binary numbers examples. Binary real numbers

Real 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 information

EXPERIMENT WRITE UP. LEARNING OBJECTIVES: 1. Get hands on experience with Assembly Language Programming 2. Write and debug programs in TASM/MASM

EXPERIMENT 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 information

GAS IA-32 Assembly Language Programming Floating Point Unit Instructions Tony Richardson University of Evansville April 19, 2007

GAS 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 information

Overview of architecture Interfacing with Data types, instructions. Programming.

Overview 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 information

M80C286 HIGH PERFORMANCE CHMOS MICROPROCESSOR WITH MEMORY MANAGEMENT AND PROTECTION

M80C286 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 information

LAB WORK NO. 11 THE USAGE OF THE MATHEMATICAL COPROCESSOR

LAB 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 information

Architecture and components of Computer System Execution of program instructions

Architecture 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 information

Q1: Multiple choice / 20 Q2: Protected mode memory accesses

Q1: 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 information

INSTRUCTOR: ABDULMUTTALIB A. H. ALDOURI

INSTRUCTOR: 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 information

IFE: Course in Low Level Programing. Lecture 6

IFE: 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 information

CS802 Parallel Processing Class Notes

CS802 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 information

ECE 498 Linux Assembly Language Lecture 3

ECE 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 information

UNIT III 8086 Microprocessor. Lecture 1

UNIT 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 information

LABORATORY WORK NO. 7 FLOW CONTROL INSTRUCTIONS

LABORATORY 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 information

2 The Quick Guide to HLA

2 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 information

Figure 8-1. x87 FPU Execution Environment

Figure 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 information

Introduction to 8086 Assembly

Introduction 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 information

Inline 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 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 information

BAHAR DÖNEMİ MİKROİŞLEMCİLER LAB4 FÖYÜ

BAHAR 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 information

Branching and Looping

Branching 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 information

80C BIT MATH COPROCESSOR

80C 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 information

Selected Pentium Instructions. Chapter 12 S. Dandamudi

Selected 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 information

The higher the values of above, the more powerful the CPU. Microprocessors are categorized in additional as: RISC or CISC.

The 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 information

IA-32 Intel Architecture Software Developer s Manual

IA-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 information

MATH CO-PROCESSOR Rajiv R Bhandari

MATH 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 information

Jump instructions. Unconditional jumps Direct jump. do not change flags. jmp label

Jump 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 information

MILITARY Intel386 TM HIGH PERFORMANCE 32-BIT MICROPROCESSOR WITH INTEGRATED MEMORY MANAGEMENT

MILITARY 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 information

NASM The Netwide Assembler

NASM 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 information

TUTORIAL. Emulador Emu8086 do. Microprocessador 8086

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

The 8086 / / / Instruction Set

The 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 information

Intel Instruction Set (gas)

Intel 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 information

M80C BIT CHMOS III NUMERIC PROCESSOR EXTENSION

M80C 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 information

Week /8086 Microprocessor Programming

Week /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 information

Preliminary Information. AMD Duron Processor Model 7 Revision Guide

Preliminary 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 information

Preliminary Information. AMD Athlon Processor Model 6 Revision Guide

Preliminary 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 information

Floating Point Instructions

Floating 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 information

Lecture Notes on Assembly Language - J. Vaughan

Lecture 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 information

Ex: Write a piece of code that transfers a block of 256 bytes stored at locations starting at 34000H to locations starting at 36000H. Ans.

Ex: 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 information

Selection and Iteration. Chapter 7 S. Dandamudi

Selection 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 information

Lecture (08) x86 programming 7

Lecture (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 information

Computer Architecture..Second Year (Sem.2).Lecture(4) مدرس المادة : م. سندس العزاوي... قسم / الحاسبات

Computer 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 information

complement) Multiply Unsigned: MUL (all operands are nonnegative) AX = BH * AL IMUL BH IMUL CX (DX,AX) = CX * AX Arithmetic MUL DWORD PTR [0x10]

complement) 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 information

Microkernel Construction

Microkernel 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 information

Microprocessors and Microcontrollers

Microprocessors 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 information

Lab 6: Conditional Processing

Lab 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 information

Control. Young W. Lim Mon. Young W. Lim Control Mon 1 / 16

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

Assembly Language LAB

Assembly 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 information

It is possible to define a number using a character or multiple numbers (see instruction DB) by using a string.

It 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 information

INTEL 汇编指令集 Intel Assemble Instruction Set

INTEL 汇编指令集 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 information

Microkernel Construction

Microkernel 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 information

CMSC 313 Lecture 05 [draft]

CMSC 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 information

UNIT III MICROPROCESSORS AND MICROCONTROLLERS MATERIAL OVERVIEW: Addressing Modes of Assembler Directives. Procedures and Macros

UNIT 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 information

Program controlled semiconductor device (IC) which fetches (from memory), decodes and executes instructions.

Program 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 information

CS220. April 25, 2007

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

6.1 The 80x86 Flags Register Flags. 6.1 Which flags are the condition codes?

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

MAHALAKSHMI ENGINEERING COLLEGE TIRUCHIRAPALLI UNIT III MULTIPROCESSOR CONFIGURATIONS PART A (2 Marks)

MAHALAKSHMI 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

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

SETcc Set Byte on Condition

SETcc 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 information

Conditional Processing

Conditional 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 information

8086 SOFTWARE ASPECTS

8086 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 information

from 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 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 information

Intel 8086: Instruction Set

Intel 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 information

Chapter 4: Data Movement Instructions. 4 1 MOV Revisited

Chapter 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 information

Intel 8086 Family Architecture Instruction Clock Cycle Calculation /8086 Effective Address (EA) Calculation... 3

Intel 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 information

Real instruction set architectures. Part 2: a representative sample

Real 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 information

PESIT Bangalore South Campus

PESIT 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 information

The x87 Floating-Point Unit

The 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 information

PHI Learning Private Limited

PHI 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 information

Computer Architecture CS372 Exam 3

Computer 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 information

ECE550 PRACTICE Final

ECE550 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 information

The Art of Assembly Language

The 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 information

Do not start the test until instructed to do so!

Do 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 information

APPLICATION NOTE. Architecture Background. Introduction. 80C286 Performance Advantages Over the AN111 Rev 1.00 Page 1 of 13.

APPLICATION 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 information

CS 261 Fall Mike Lam, Professor. x86-64 Data Structures and Misc. Topics

CS 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 information

Week /8086 Microprocessor Programming I

Week /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 information

CS429: Computer Organization and Architecture

CS429: 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 information

Assembly Language Tutorial

Assembly 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 information

APPLICATION NOTE. Introduction. Operating Speeds. Intersil 80C286 Performance Advantages Over the 80386SX. AN121 Rev 1.00 Page 1 of 15.

APPLICATION 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