Lecture 12 Integer Arithmetic Assembly Language for Intel-Based Computers, 4th edition Kip R. Irvine.

Slides:



Advertisements
Similar presentations
Integer Arithmetic: Multiply, Divide, and Bitwise Operations
Advertisements

NEG Instruction Change operand content into two’s complement (negative value) and stored back into its operand mov bl, b neg bl; bl = mov.
1 IKI10230 Pengantar Organisasi Komputer Kuliah no. 05.c: Logical Operations Sumber: 1. Paul Carter, PC Assembly Language 2. Hamacher. Computer Organization,
ACOE2511 Assembly Language Arithmetic and Logic Instructions.
Computer Organization & Assembly Language
80x86 Instruction Set Dr. Qiang Lin.
Web siteWeb site ExamplesExamples Irvine, Kip R. Assembly Language for Intel-Based Computers, MUL Instruction The MUL (unsigned multiply) instruction.
1 Lecture 7 Integer Arithmetic Assembly Language for Intel-Based Computers, 4th edition Kip R. Irvine.
Assembly Language for Intel-Based Computers, 4 th Edition Chapter 7: Integer Arithmetic (c) Pearson Education, All rights reserved. You may modify.
9-1 ECE 424 Design of Microprocessor-Based Systems Haibo Wang ECE Department Southern Illinois University Carbondale, IL x86 Instructions Part.
Assembly Language for Intel-Based Computers, 5 th Edition Chapter 7: Integer Arithmetic (c) Pearson Education, All rights reserved. You may.
Assembly Language for Intel-Based Computers, 5 th Edition Chapter 7: Integer Arithmetic (c) Pearson Education, All rights reserved. You may.
Shift and Rotate Instructions
Assembly Language for Intel-Based Computers, 4 th Edition Chapter 7: Integer Arithmetic (c) Pearson Education, All rights reserved. You may modify.
Assembly Language for Intel-Based Computers, 4 th Edition Chapter 7: Integer Arithmetic (c) Pearson Education, All rights reserved. You may modify.
Assembly Language for Intel-Based Computers
Integer Arithmetic Computer Organization & Assembly Language Programming Dr Adnan Gutub aagutub ‘at’ uqu.edu.sa [Adapted from slides of Dr. Kip Irvine:
Integer Arithmetic COE 205 Computer Organization and Assembly Language
Introduction to Computer Engineering by Richard E. Haskell Shift and Rotate Instructions Module M16.2 Section 10.3.
Assembly Language for x86 Processors 6th Edition
Sahar Mosleh California State University San MarcosPage 1 Applications of Shift and Rotate Instructions.
Ch. 7 Logic, Shift and Rotate instr.
Khaled A. Al-Utaibi  Introduction  Arithmetic Instructions  Basic Logical Instructions  Shift Instructions  Rotate Instructions.
ICS312 Set 9 Logic & Shift Instructions. Logic & Shift Instructions Logic and Shift Instructions can be used to change the bit values in an operand. The.
Microprocessors Monday, Apr. 13 Dr. Asmaa Farouk Faculty of Engineering, Electrical Department, Assiut University.
Department of Computer Science and Software Engineering
Lecture 5 Presented By Dr. Shazzad Hosain Asst. Prof. EECS, NSU.
Integer Arithmetic Computer Organization and Assembly Languages Yung-Yu Chuang 2007/12/24 with slides by Kip Irvine.
Assembly Language for Intel-Based Computers Chapter 7: Integer Arithmetic (c) Pearson Education, All rights reserved. You may modify and copy.
CT215: Assembly Language Programming
1 Logic, Shift, and Rotate Instructions Read Sections 6.2, 7.2 and 7.3 of textbook.
Assembly Language for x86 Processors 6th Edition Chapter 7: Integer Arithmetic (c) Pearson Education, All rights reserved. You may modify and copy.
Assembly 05. Outline Bit mapping Boolean logic (review) Bitwise logic Bit masking Bit shifting Lookup table 1.
Logical and Bit Operations Chapter 9 S. Dandamudi.
EEL 3801 Part V Conditional Processing. This section explains how to implement conditional processing in Assembly Language for the 8086/8088 processors.
Chapter 7: Integer Arithmetic. 2 Chapter Overview Shift and Rotate Instructions Shift and Rotate Applications Multiplication and Division Instructions.
Irvine, Kip R. Assembly Language for Intel-Based Computers. Chapter 7: Integer Arithmetic Slides to Accompany Assembly Language for Intel-Based Computers,
Assembly Language for Intel-Based Computers, 5 th Edition Chapter 7: Integer Arithmetic (c) Pearson Education, All rights reserved. You may.
Assembly Language for x86 Processors 7th Edition
The Assemble, Unassemble commands of the debugger: U Command for converting machine code language source Equivalent machine code instructions Equivalent.
Chapter 7 Bit Manipulation. 7.1 Logical Operations.
Computer and Information Sciences College / Computer Science Department CS 206 D Computer Organization and Assembly Language.
Chapter four – The 80x86 Instruction Set Principles of Microcomputers 2016年3月17日 2016年3月17日 2016年3月17日 2016年3月17日 2016年3月17日 2016年3月17日 1 Chapter Four.
Riyadh Philanthropic Society For Science Prince Sultan College For Woman Dept. of Computer & Information Sciences CS 251 Introduction to Computer Organization.
Boolean, Shift and Rotate instructions Dr.Hadi AL Saadi.
CS2422 Assembly Language and System Programming 0 Week 13 & 14 Codes in Assembly Language.
Assembly Language for Intel-Based Computers, 5th Edition
Assembly Language for x86 Processors 7th Edition
Microprocessor Systems Design I
Chapter 3 Bit Operations
EE3541 Introduction to Microprocessors
Instruction System - Bit Manipulation Instruction
Machine control instruction
INSTRUCTION SET OF 8086 PAWAN KUMAR SINGH.
UNIT: 2 INSTRUCTION SET OF 8086.
Chapter 4: Instructions
Computer Organization and Assembly Languages Yung-Yu Chuang 2005/11/17
Morgan Kaufmann Publishers Computer Organization and Assembly Language
Shift & Rotate Instructions)
ADDITION Register Addition. ADD AX,BX AX=AX+BX 2. Immediate Addition.
Assembly Language for Intel-Based Computers, 4th Edition
Shift & Rotate Instructions)
Assembly Language for Intel-Based Computers, 4th Edition
Assembly Language for Intel-Based Computers, 5th Edition
Shift, Multiply, and Divide
Chapter 5 Arithmetic and Logic Instructions
Microprocessor and Assembly Language
Computer Organization and Assembly Language
Shift and Rotate Instructions.
CS-401 Computer Architecture & Assembly Language Programming
Presentation transcript:

Lecture 12 Integer Arithmetic Assembly Language for Intel-Based Computers, 4th edition Kip R. Irvine

2 Chapter Overview Shift and Rotate Instructions Shift and Rotate Applications Multiplication and Division Instructions Extended Addition and Subtraction ASCII and Packed Decimal Arithmetic

3 Shift and Rotate Instructions Logical vs Arithmetic Shifts SHL Instruction SHR Instruction SAL and SAR Instructions ROL Instruction ROR Instruction RCL and RCR Instructions SHLD/SHRD Instructions

4 Logical vs Arithmetic Shifts A logical shift fills the newly created bit position with zero: An arithmetic shift fills the newly created bit position with a copy of the number’s sign bit:

5 SHL Instruction The SHL (shift left) instruction performs a logical left shift on the destination operand, filling the lowest bit with 0. Operand types: SHL reg,imm8 SHL mem,imm8 SHL reg,CL SHL mem,CL

6 Fast Multiplication mov dl,5 shl dl,1 Shifting left 1 bit multiplies a number by 2 mov dl,5 shl dl,2; DL = 20 Shifting left n bits multiplies the operand by 2 n For example, 5 * 2 2 = 20

7 SHR Instruction The SHR (shift right) instruction performs a logical right shift on the destination operand. The highest bit position is filled with a zero. mov dl,80 shr dl,1; DL = 40 shr dl,2; DL = 10 Shifting right n bits divides the operand by 2 n The remainder of the division is lost

8 SAL and SAR Instructions SAL (shift arithmetic left) is identical to SHL. SAR (shift arithmetic right) performs a right arithmetic shift on the destination operand. An arithmetic shift preserves the number's sign. mov dl,-80 sar dl,1; DL = -40 sar dl,2; DL = -10

9 Your turn... mov al,6Bh shr al,1a. shl al,3b. mov al,8Ch sar al,1c. sar al,3d. Indicate the hexadecimal value of AL after each shift: 35h A8h C6h F8h

10 ROL Instruction ROL (rotate) shifts each bit to the left The highest bit is copied into both the Carry flag and into the lowest bit No bits are lost mov al, b rol al,1; AL = b mov dl,3Fh rol dl,4; DL = F3h

11 ROR Instruction ROR (rotate right) shifts each bit to the right The lowest bit is copied into both the Carry flag and into the highest bit No bits are lost mov al, b ror al,1; AL = b mov dl,3Fh ror dl,4; DL = F3h

12 Your turn... mov al,6Bh ror al,1a. rol al,3b. Indicate the hexadecimal value of AL after each rotation: B5h ADh

13 RCL Instruction RCL (rotate carry left) shifts each bit to the left Copies the Carry flag to the least significant bit Copies the most significant bit to the Carry flag clc; CF = 0 mov bl,88h; CF,BL = b rcl bl,1; CF,BL = b rcl bl,1; CF,BL = b

14 RCR Instruction RCR (rotate carry right) shifts each bit to the right Copies the Carry flag to the most significant bit Copies the least significant bit to the Carry flag stc; CF = 1 mov ah,10h; CF,AH = rcr ah,1; CF,AH =

15 Your turn... stc mov al,6Bh rcr al,1a. rcl al,3b. Indicate the hexadecimal value of AL after each rotation: B5h AEh

16 Multiplying with shifts and adds Algorithm: Assumes BL contains multiplicand DL contains multiplier 1. Initialize Clear AX Put 8 in CX 2. Repeat 8 times (once per bit of multiplier) Shift DL right by 1 bit into CF If CF = 1, Add BL to AH with carry in CF Rotate AX (include CF) The result is in AX.

17 Multiplying with shifts and adds Multiply PROC XOR AX, AX MOV CX, 8 Repeat1: SHR DL, 1 JNC Lskip ADD AH, BL LSkip: RCR AX, 1 LOOP Repeat1 RET Multiply ENDP

18 Multiplying with shifts and adds 4 bit example 0110 * 1010 DL = shift CF = ? 0 1 BL = AX = add CF = 0 0 AX = rotate CX = 8 8 7

19 Multiplying with shifts and adds 4 bit example 0110 * 1010 continued DL = shift CF = 0 1 BL = AX = add CF = 0 AX = rotate CX = 6 5 ……

20 Ex: Reversing the content of AL Ex: if AL = b, we want to reverse the order of the bits so AL = b  mov cx,8 ; number of bits to rotate start:  shl al,1 ; CF = msb of AL  rcr bl,1 ; push CF into msb of BL  loop start ; repeat for 8 bits  mov al,bl ; store result into AL

21 SHLD Instruction Shifts a destination operand a given number of bits to the left The bit positions opened up by the shift are filled by the most significant bits of the source operand The source operand is not affected Syntax: SHLD destination, source, count

22 SHLD Example.data wval WORD 9BA6h.code mov ax,0AC36h shld wval,ax,4 Shift wval 4 bits to the left and replace its lowest 4 bits with the high 4 bits of AX: Before: After:

23 SHRD Instruction Shifts a destination operand a given number of bits to the right The bit positions opened up by the shift are filled by the least significant bits of the source operand The source operand is not affected Syntax: SHRD destination, source, count

24 SHRD Example mov ax,234Bh mov dx,7654h shrd ax,dx,4 Shift AX 4 bits to the right and replace its highest 4 bits with the low 4 bits of DX: Before: After:

25 Your turn... mov ax,7C36h mov dx,9FA6h shld dx,ax,4; DX = shrd dx,ax,8; DX = Indicate the hexadecimal values of each destination operand: FA67h 36FAh

26 CSCE 380 Department of Computer Science and Computer Engineering Pacific Lutheran University 4/2/2003