How NOT to design an ISA x86.

Slides:



Advertisements
Similar presentations
Programming 8086 – Part IV Stacks, Macros
Advertisements

10/9: Lecture Topics Starting a Program Exercise 3.2 from H+P Review of Assembly Language RISC vs. CISC.
C Programming and Assembly Language Janakiraman V – NITK Surathkal 2 nd August 2014.
1/2002JNM1 AL 00 Immediate Addressing Mode Mov AL, 3CH AL 3C.
80x86 Instruction Set Dr. Qiang Lin.
Data Movement Instructions
Lecture 6 Machine Code: How the CPU is programmed.
Addressing Modes Instruction – Op-code – Operand Addressing mode indicates a way of locating data or operands. – Any instruction may belong to one or more.
KMUTT: S. Srakaew Instructions Can Be Divided into 3 Classes Data movement instructions  Move data from a memory location or register to another memory.
Operand And Instructions Representation By Dave Maung.
Target Processor Directives , When using.386, the program can only run on 386 and above processors.
Practical Session 3. The Stack The stack is an area in memory that its purpose is to provide a space for temporary storage of addresses and data items.
Tanenbaum, Structured Computer Organization, Fifth Edition, (c) 2006 Pearson Education, Inc. All rights reserved The Instruction Set Architecture.
Pentium Addressing Modes
Instruction Set Design by Kip R. Irvine (c) Kip Irvine, All rights reserved. You may modify and copy this slide show for your personal use,
Linked Lists in MIPS Let’s see how singly linked lists are implemented in MIPS on MP2, we have a special type of doubly linked list Each node consists.
Microprocessors The ia32 User Instruction Set Jan 31st, 2002.
Computer Organization
Operand Addressing And Instruction Representation Cs355-Chapter 6.
CS 211: Computer Architecture Lecture 2 Instructor: Morris Lancaster.
ECE 447 Fall 2009 Lecture 4: TI MSP430 Architecture and Instruction Set.
MOV Instruction MOV destination,source  MOV AX,BX  MOV SUM,EAX  MOV EDX,ARRAY[EBX][ESI]  MOV CL,5  MOV DL,[BX]
Week 6 Dr. Muhammad Ayaz Intro. to Assembly Language.
Microprocessors CSE- 341 Dr. Jia Uddin Assistant Professor, CSE, BRAC University Dr. Jia Uddin, CSE, BRAC University.
Intel MP Organization. Registers - storage locations found inside the processor for temporary storage of data 1- Data Registers (16-bit) AX, BX, CX, DX.
Addressing Modes Instruction – Op-code – Operand Addressing mode indicates a way of locating data or operands. – Any instruction may belong to one or more.
Instruction Set Architectures Continued. Expanding Opcodes & Instructions.
מבוסס על שקפים מאת יאן ציטרין
William Stallings Computer Organization and Architecture 6th Edition
Lecture 2 Programming of 8086 Лектор: Люличева И.А. 1.
Part of the Assembler Language Programmers Toolbox
A Closer Look at Instruction Set Architectures
ISA's, Compilers, and Assembly
COURSE OUTCOMES OF MICROPROCESSOR AND PROGRAMMING
Aaron Miller David Cohen Spring 2011
Microprocessor and Assembly Language
Assembly IA-32.
8051 Addressing Modes The way, using which the data source or destination addresses are specified in the instruction mnemonic for moving the data, is.
A Closer Look at Instruction Set Architectures: Expanding Opcodes
Intel 8088 (8086) Microprocessor Structure
Chapter 3 Addressing Modes
Morgan Kaufmann Publishers Computer Organization and Assembly Language
Processor Organization and Architecture
CS 301 Fall 2002 Control Structures
Data Addressing Modes • MOV AX,BX; This instruction transfers the word contents of the source-register(BX) into the destination register(AX). • The source.
Programming 8086 – Part IV Stacks, Macros
CS170 Computer Organization and Architecture I
Intel 8088 (8086) Microprocessor Structure
The Instruction Set Architecture Level
(Array and Addressing Modes)
Chapter 8 Central Processing Unit
MIPS Procedure Calls CSE 378 – Section 3.
Stack Relative Deferred (sf) Indexed (x) Stack Indexed (sx)
Practical Session 4.
Instruction Set Architectures Continued
Under Address Modes Source: under
(Array and Addressing Modes)
Computer Architecture
Stack Relative Deferred (sf) Indexed (x) Stack Indexed (sx)
Addressing Modes MOV AX,BX Destination Source Data-Addressing Modes.
Evolution of ISA’s ISA’s have changed over computer “generations”.
Under Address Modes Source: under
Some Assembly (Part 2) set.html.
Instruction Set Summary
CSC 497/583 Advanced Topics in Computer Security
CS-401 Computer Architecture and Assembly Language Programming
The JUMP GROUP Unconditional Jump (JMP).
Computer Organization
(Array and Addressing Modes)
CS-401 Computer Architecture & Assembly Language Programming
Presentation transcript:

How NOT to design an ISA x86

Key differences from MIPS Limited registers (And special purpose) Different branching capabilities Every conceivable addressing mode Almost every opcode under the sun Multibyte encoding

Registers

Branching Normal branching: Explicit loop control: Hardware memcpy: All-purpose “CMP” followed by flag-based branch: BGE, BLE, etc Explicit loop control: Place count in ECX and “LOOPZ” Hardware memcpy: Count in ECX, “REP MOVSW” Hardware stack: PUSH / POP CALL / RET

Addressing modes Register: inc bx Immediate: mov cx, 10 Memory: mov cx, [address] Register Indirect: mov cx, [bx] Base Relative: mov cx, [bx+1] Base Indexed: mov cx, [bx+si] …and so on

Multibyte Encoding

So what were they thinking? Architectural support for HLLs Compilers would just be tiny syntax translators No systematic study of that premise