SlideShare a Scribd company logo
1 of 4
Download to read offline
http://www.tutorialspoint.com/assembly_prog ramming /assembly_reg isters.htm Copyright © tutorialspoint.com
ASSEMBLY - REGISTERS
Processor operations mostly involve processing data. This data canbe stored inmemory and accessed from
thereon. However, reading data fromand storing data into memory slows downthe processor, as it involves
complicated processes of sending the data request across the controlbus and into the memory storage unit and
getting the data throughthe same channel.
To speed up the processor operations, the processor includes some internalmemory storage locations, called
registers.
The registers store data elements for processing without having to access the memory. A limited number of
registers are built into the processor chip.
Processor Registers
There are ten32-bit and six 16-bit processor registers inIA-32 architecture. The registers are grouped into
three categories:
Generalregisters
Controlregisters
Segment registers
The generalregisters are further divided into the following groups:
Data registers
Pointer registers
Index registers
Data Registers
Four 32-bit data registers are used for arithmetic, logicaland other operations. These 32-bit registers canbe
used inthree ways:
1. As complete 32-bit data registers: EAX, EBX, ECX, EDX.
2. Lower halves of the 32-bit registers canbe used as four 16-bit data registers: AX, BX, CX and DX.
3. Lower and higher halves of the above-mentioned four 16-bit registers canbe used as eight 8-bit data
registers: AH, AL, BH, BL, CH, CL, DH, and DL.
Some of these data registers have specific use inarithmeticaloperations.
AX is the primary accumulator; it is used ininput/output and most arithmetic instructions. For example, in
multiplicationoperation, one operand is stored inEAX or AX or AL register according to the size of the operand.
BX is known as the base register as it could be used inindexed addressing.
CX is known as the count register as the ECX, CX registers store the loop count initerative operations.
DX is known as the data register. It is also used ininput/output operations. It is also used withAX register
along withDX for multiply and divide operations involving large values.
Pointer Registers
The pointer registers are 32-bit EIP, ESP and EBP registers and corresponding 16-bit right portions IP, SP
and BP. There are three categories of pointer registers:
Instruction Pointer (IP) - the 16-bit IP register stores the offset address of the next instructionto be
executed. IP inassociationwiththe CS register (as CS:IP) gives the complete address of the current
instructioninthe code segment.
Stack Pointer (SP) - the 16-bit SP register provides the offset value withinthe programstack. SP in
associationwiththe SS register (SS:SP) refers to be current positionof data or address withinthe
programstack.
Base Pointer (BP) - the 16-bit BP register mainly helps inreferencing the parameter variables passed
to a subroutine. The address inSS register is combined withthe offset inBP to get the locationof the
parameter. BP canalso be combined withDI and SI as base register for specialaddressing.
Index Registers
The 32-bit index registers ESI and EDI and their 16-bit rightmost portions SI and DI are used for indexed
addressing and sometimes used inadditionand subtraction. There are two sets of index pointers:
Source Index (SI) - it is used as source index for string operations
Destination Index (DI) - it is used as destinationindex for string operations.
Control Registers
The 32-bit instructionpointer register and 32-bit flags register combined are considered as the control
registers.
Many instructions involve comparisons and mathematicalcalculations and change the status of the flags and some
other conditionalinstructions test the value of these status flags to take the controlflow to other location.
The commonflag bits are:
Overflow Flag (OF): indicates the overflow of a high-order bit (leftmost bit) of data after a signed
arithmetic operation.
Direction Flag (DF): determines left or right directionfor moving or comparing string data. Whenthe
DF value is 0, the string operationtakes left-to-right directionand whenthe value is set to 1, the string
operationtakes right-to-left direction.
Interrupt Flag (IF): determines whether the externalinterrupts like keyboard entry, etc., are to be
ignored or processed. It disables the externalinterrupt whenthe value is 0 and enables interrupts when
set to 1.
Trap Flag (TF): allows setting the operationof the processor insingle-step mode. The DEBUG
programwe used sets the trap flag, so we could step throughthe executionone instructionat a time.
Sign Flag (SF): shows the signof the result of anarithmetic operation. This flag is set according to the
signof a data itemfollowing the arithmetic operation. The signis indicated by the high-order of leftmost
bit. A positive result clears the value of SF to 0 and negative result sets it to 1.
Zero Flag (ZF): indicates the result of anarithmetic or comparisonoperation. A nonzero result clears
the zero flag to 0, and a zero result sets it to 1.
Auxiliary Carry Flag (AF): contains the carry frombit 3 to bit 4 following anarithmetic operation;
used for specialized arithmetic. The AF is set whena 1-byte arithmetic operationcauses a carry frombit 3
into bit 4.
Parity Flag (PF): indicates the totalnumber of 1-bits inthe result obtained fromanarithmetic operation.
Anevennumber of 1-bits clears the parity flag to 0 and anodd number of 1-bits sets the parity flag to 1.
Carry Flag (CF): contains the carry of 0 or 1 froma high-order bit (leftmost) after anarithmetic
operation. It also stores the contents of last bit of a shift or rotate operation.
The following table indicates the positionof flag bits inthe 16-bit Flags register:
Flag: O D I T S Z A P C
Bit no: 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
Segment Registers
Segments are specific areas defined ina programfor containing data, code and stack. There are three main
segments:
Code Segment: it contains allthe instructions to be executed. A 16-bit Code Segment register or CS
register stores the starting address of the code segment.
Data Segment: it contains data, constants and work areas. A 16-bit Data Segment register or DS
register stores the starting address of the data segment.
Stack Segment: it contains data and returnaddresses of procedures or subroutines. It is implemented
as a 'stack' data structure. The Stack Segment register or SS register stores the starting address of the
stack.
Apart fromthe DS, CS and SS registers, there are other extra segment registers - ES (extra segment), FS and
GS, whichprovide additionalsegments for storing data.
Inassembly programming, a programneeds to access the memory locations. Allmemory locations withina
segment are relative to the starting address of the segment. A segment begins inanaddress evenly divisible by
16 or hexadecimal10. So, the rightmost hex digit inallsuchmemory addresses is 0, whichis not generally stored
inthe segment registers.
The segment registers stores the starting addresses of a segment. To get the exact locationof data or
instructionwithina segment, anoffset value (or displacement) is required. To reference any memory locationina
segment, the processor combines the segment address inthe segment register withthe offset value of the
location.
Example:
Look at the following simple programto understand the use of registers inassembly programming. This
programdisplays 9 stars onthe screenalong witha simple message:
section .text
global _start ;must be declared for linker (gcc)
_start: ;tell linker entry point
mov edx,len ;message length
mov ecx,msg ;message to write
mov ebx,1 ;file descriptor (stdout)
mov eax,4 ;system call number (sys_write)
int 0x80 ;call kernel
mov edx,9 ;message length
mov ecx,s2 ;message to write
mov ebx,1 ;file descriptor (stdout)
mov eax,4 ;system call number (sys_write)
int 0x80 ;call kernel
mov eax,1 ;system call number (sys_exit)
int 0x80 ;call kernel
section .data
msg db 'Displaying 9 stars',0xa ;a message
len equ $ - msg ;length of message
s2 times 9 db '*'
Whenthe above code is compiled and executed, it produces the following result:
Displaying 9 stars
*********

More Related Content

What's hot (19)

Computer registers
Computer registersComputer registers
Computer registers
 
Addressing modes (detailed data path)
Addressing modes (detailed data path)Addressing modes (detailed data path)
Addressing modes (detailed data path)
 
Computer organisation
Computer organisationComputer organisation
Computer organisation
 
What is CPU Register? Type of CPU Register.
What is CPU Register? Type of CPU Register.What is CPU Register? Type of CPU Register.
What is CPU Register? Type of CPU Register.
 
Ch3
Ch3Ch3
Ch3
 
Advanced microprocessor
Advanced microprocessorAdvanced microprocessor
Advanced microprocessor
 
Module 4 advanced microprocessors
Module 4 advanced microprocessorsModule 4 advanced microprocessors
Module 4 advanced microprocessors
 
Processor Basics
Processor BasicsProcessor Basics
Processor Basics
 
Assembly Language
Assembly LanguageAssembly Language
Assembly Language
 
Registers and-common-bus
Registers and-common-busRegisters and-common-bus
Registers and-common-bus
 
Computers6 Ch4 1
Computers6 Ch4 1Computers6 Ch4 1
Computers6 Ch4 1
 
Bindura university of science education
Bindura university of science educationBindura university of science education
Bindura university of science education
 
8086 Introduction
8086 Introduction8086 Introduction
8086 Introduction
 
8085 archi
8085 archi8085 archi
8085 archi
 
Chapter 4
Chapter 4Chapter 4
Chapter 4
 
Microprocessor
MicroprocessorMicroprocessor
Microprocessor
 
Cpu registers
Cpu registersCpu registers
Cpu registers
 
Chapter 7
Chapter 7Chapter 7
Chapter 7
 
Pai unit 1_l1-l2-l3-l4_upload
Pai unit 1_l1-l2-l3-l4_uploadPai unit 1_l1-l2-l3-l4_upload
Pai unit 1_l1-l2-l3-l4_upload
 

Similar to N_Asm Assembly registers (sol)

Introduction to CPU registers
Introduction to CPU registersIntroduction to CPU registers
Introduction to CPU registersMuhammad Waqas
 
8086 Microprocessor
8086 Microprocessor 8086 Microprocessor
8086 Microprocessor Vijay Kumar
 
digital communication,micro processor,pulse and digital circuits
digital communication,micro processor,pulse and digital circuitsdigital communication,micro processor,pulse and digital circuits
digital communication,micro processor,pulse and digital circuitsManasa Mona
 
Register introduction
Register introductionRegister introduction
Register introductionmaamir farooq
 
microprocessor_part_3_compressed_1588259301.pdf
microprocessor_part_3_compressed_1588259301.pdfmicroprocessor_part_3_compressed_1588259301.pdf
microprocessor_part_3_compressed_1588259301.pdfssuserd21262
 
26677766 8086-microprocessor-architecture
26677766 8086-microprocessor-architecture26677766 8086-microprocessor-architecture
26677766 8086-microprocessor-architectureSaurabh Jain
 
Intel Microprocessors 8086 Documentation
Intel Microprocessors 8086 DocumentationIntel Microprocessors 8086 Documentation
Intel Microprocessors 8086 DocumentationAdeel Rasheed
 
SAQIB ALI.pptx
SAQIB ALI.pptxSAQIB ALI.pptx
SAQIB ALI.pptxastik11
 
3 organization of intel 8086
3 organization of intel 80863 organization of intel 8086
3 organization of intel 8086ELIMENG
 
8086 handout for chapter one and two
8086 handout for chapter one and two8086 handout for chapter one and two
8086 handout for chapter one and twohaymanotyehuala
 
INTEL 8086 MP Architecture
INTEL 8086 MP ArchitectureINTEL 8086 MP Architecture
INTEL 8086 MP ArchitectureMd. Arif Hossain
 
Microprocessor Architecture.pptx
Microprocessor Architecture.pptxMicroprocessor Architecture.pptx
Microprocessor Architecture.pptxCaptain Price
 

Similar to N_Asm Assembly registers (sol) (20)

Chapter 2
Chapter 2Chapter 2
Chapter 2
 
Introduction to CPU registers
Introduction to CPU registersIntroduction to CPU registers
Introduction to CPU registers
 
8086 Microprocessor
8086 Microprocessor 8086 Microprocessor
8086 Microprocessor
 
digital communication,micro processor,pulse and digital circuits
digital communication,micro processor,pulse and digital circuitsdigital communication,micro processor,pulse and digital circuits
digital communication,micro processor,pulse and digital circuits
 
intel 8086 introduction
intel 8086 introductionintel 8086 introduction
intel 8086 introduction
 
Register introduction
Register introductionRegister introduction
Register introduction
 
microprocessor_part_3_compressed_1588259301.pdf
microprocessor_part_3_compressed_1588259301.pdfmicroprocessor_part_3_compressed_1588259301.pdf
microprocessor_part_3_compressed_1588259301.pdf
 
Arch 8086
Arch 8086Arch 8086
Arch 8086
 
Amp
AmpAmp
Amp
 
26677766 8086-microprocessor-architecture
26677766 8086-microprocessor-architecture26677766 8086-microprocessor-architecture
26677766 8086-microprocessor-architecture
 
Intel 8086
Intel 8086 Intel 8086
Intel 8086
 
8086 architecture
8086 architecture8086 architecture
8086 architecture
 
Intel Microprocessors 8086 Documentation
Intel Microprocessors 8086 DocumentationIntel Microprocessors 8086 Documentation
Intel Microprocessors 8086 Documentation
 
SAQIB ALI.pptx
SAQIB ALI.pptxSAQIB ALI.pptx
SAQIB ALI.pptx
 
3 organization of intel 8086
3 organization of intel 80863 organization of intel 8086
3 organization of intel 8086
 
8051 microcontroller
 8051 microcontroller 8051 microcontroller
8051 microcontroller
 
8086 handout for chapter one and two
8086 handout for chapter one and two8086 handout for chapter one and two
8086 handout for chapter one and two
 
INTEL 8086 MP Architecture
INTEL 8086 MP ArchitectureINTEL 8086 MP Architecture
INTEL 8086 MP Architecture
 
110 ec0644
110 ec0644110 ec0644
110 ec0644
 
Microprocessor Architecture.pptx
Microprocessor Architecture.pptxMicroprocessor Architecture.pptx
Microprocessor Architecture.pptx
 

More from Selomon birhane

N_Asm Assembly system calls (sol)
N_Asm Assembly system calls (sol)N_Asm Assembly system calls (sol)
N_Asm Assembly system calls (sol)Selomon birhane
 
N_Asm Assembly basic syntax (sol)
N_Asm Assembly basic syntax (sol)N_Asm Assembly basic syntax (sol)
N_Asm Assembly basic syntax (sol)Selomon birhane
 
N_Asm Assembly addressing modes (sol)
N_Asm Assembly addressing modes (sol)N_Asm Assembly addressing modes (sol)
N_Asm Assembly addressing modes (sol)Selomon birhane
 
N_Asm Assembly arrays (sol)
N_Asm Assembly arrays (sol)N_Asm Assembly arrays (sol)
N_Asm Assembly arrays (sol)Selomon birhane
 
N_Asm Assembly arithmetic instructions (sol)
N_Asm Assembly arithmetic instructions (sol)N_Asm Assembly arithmetic instructions (sol)
N_Asm Assembly arithmetic instructions (sol)Selomon birhane
 
N_Asm Assembly recursion (sol)
N_Asm Assembly recursion (sol)N_Asm Assembly recursion (sol)
N_Asm Assembly recursion (sol)Selomon birhane
 
N_Asm Assembly strings (sol)
N_Asm Assembly strings (sol)N_Asm Assembly strings (sol)
N_Asm Assembly strings (sol)Selomon birhane
 
N_Asm Assembly numbers (sol)
N_Asm Assembly numbers (sol)N_Asm Assembly numbers (sol)
N_Asm Assembly numbers (sol)Selomon birhane
 
N_Asm Assembly variables (sol)
N_Asm Assembly variables (sol)N_Asm Assembly variables (sol)
N_Asm Assembly variables (sol)Selomon birhane
 
N_Asm Assembly macros (sol)
N_Asm Assembly macros (sol)N_Asm Assembly macros (sol)
N_Asm Assembly macros (sol)Selomon birhane
 
Control system(smarajit ghosh) By sol
Control system(smarajit ghosh) By solControl system(smarajit ghosh) By sol
Control system(smarajit ghosh) By solSelomon birhane
 

More from Selomon birhane (12)

N_Asm Assembly system calls (sol)
N_Asm Assembly system calls (sol)N_Asm Assembly system calls (sol)
N_Asm Assembly system calls (sol)
 
N_Asm Assembly basic syntax (sol)
N_Asm Assembly basic syntax (sol)N_Asm Assembly basic syntax (sol)
N_Asm Assembly basic syntax (sol)
 
N_Asm Assembly addressing modes (sol)
N_Asm Assembly addressing modes (sol)N_Asm Assembly addressing modes (sol)
N_Asm Assembly addressing modes (sol)
 
N_Asm Assembly arrays (sol)
N_Asm Assembly arrays (sol)N_Asm Assembly arrays (sol)
N_Asm Assembly arrays (sol)
 
N_Asm Assembly arithmetic instructions (sol)
N_Asm Assembly arithmetic instructions (sol)N_Asm Assembly arithmetic instructions (sol)
N_Asm Assembly arithmetic instructions (sol)
 
N_Asm Assembly recursion (sol)
N_Asm Assembly recursion (sol)N_Asm Assembly recursion (sol)
N_Asm Assembly recursion (sol)
 
N_Asm Assembly strings (sol)
N_Asm Assembly strings (sol)N_Asm Assembly strings (sol)
N_Asm Assembly strings (sol)
 
N_Asm Assembly numbers (sol)
N_Asm Assembly numbers (sol)N_Asm Assembly numbers (sol)
N_Asm Assembly numbers (sol)
 
N_Asm Assembly variables (sol)
N_Asm Assembly variables (sol)N_Asm Assembly variables (sol)
N_Asm Assembly variables (sol)
 
N_Asm Assembly macros (sol)
N_Asm Assembly macros (sol)N_Asm Assembly macros (sol)
N_Asm Assembly macros (sol)
 
Control system(smarajit ghosh) By sol
Control system(smarajit ghosh) By solControl system(smarajit ghosh) By sol
Control system(smarajit ghosh) By sol
 
Two ports
Two ports Two ports
Two ports
 

Recently uploaded

ManageIQ - Sprint 236 Review - Slide Deck
ManageIQ - Sprint 236 Review - Slide DeckManageIQ - Sprint 236 Review - Slide Deck
ManageIQ - Sprint 236 Review - Slide DeckManageIQ
 
VTU technical seminar 8Th Sem on Scikit-learn
VTU technical seminar 8Th Sem on Scikit-learnVTU technical seminar 8Th Sem on Scikit-learn
VTU technical seminar 8Th Sem on Scikit-learnAmarnathKambale
 
MarTech Trend 2024 Book : Marketing Technology Trends (2024 Edition) How Data...
MarTech Trend 2024 Book : Marketing Technology Trends (2024 Edition) How Data...MarTech Trend 2024 Book : Marketing Technology Trends (2024 Edition) How Data...
MarTech Trend 2024 Book : Marketing Technology Trends (2024 Edition) How Data...Jittipong Loespradit
 
Crypto Cloud Review - How To Earn Up To $500 Per DAY Of Bitcoin 100% On AutoP...
Crypto Cloud Review - How To Earn Up To $500 Per DAY Of Bitcoin 100% On AutoP...Crypto Cloud Review - How To Earn Up To $500 Per DAY Of Bitcoin 100% On AutoP...
Crypto Cloud Review - How To Earn Up To $500 Per DAY Of Bitcoin 100% On AutoP...SelfMade bd
 
Exploring the Best Video Editing App.pdf
Exploring the Best Video Editing App.pdfExploring the Best Video Editing App.pdf
Exploring the Best Video Editing App.pdfproinshot.com
 
%in tembisa+277-882-255-28 abortion pills for sale in tembisa
%in tembisa+277-882-255-28 abortion pills for sale in tembisa%in tembisa+277-882-255-28 abortion pills for sale in tembisa
%in tembisa+277-882-255-28 abortion pills for sale in tembisamasabamasaba
 
%in ivory park+277-882-255-28 abortion pills for sale in ivory park
%in ivory park+277-882-255-28 abortion pills for sale in ivory park %in ivory park+277-882-255-28 abortion pills for sale in ivory park
%in ivory park+277-882-255-28 abortion pills for sale in ivory park masabamasaba
 
%in Stilfontein+277-882-255-28 abortion pills for sale in Stilfontein
%in Stilfontein+277-882-255-28 abortion pills for sale in Stilfontein%in Stilfontein+277-882-255-28 abortion pills for sale in Stilfontein
%in Stilfontein+277-882-255-28 abortion pills for sale in Stilfonteinmasabamasaba
 
%in kempton park+277-882-255-28 abortion pills for sale in kempton park
%in kempton park+277-882-255-28 abortion pills for sale in kempton park %in kempton park+277-882-255-28 abortion pills for sale in kempton park
%in kempton park+277-882-255-28 abortion pills for sale in kempton park masabamasaba
 
Software Quality Assurance Interview Questions
Software Quality Assurance Interview QuestionsSoftware Quality Assurance Interview Questions
Software Quality Assurance Interview QuestionsArshad QA
 
LEVEL 5 - SESSION 1 2023 (1).pptx - PDF 123456
LEVEL 5   - SESSION 1 2023 (1).pptx - PDF 123456LEVEL 5   - SESSION 1 2023 (1).pptx - PDF 123456
LEVEL 5 - SESSION 1 2023 (1).pptx - PDF 123456KiaraTiradoMicha
 
10 Trends Likely to Shape Enterprise Technology in 2024
10 Trends Likely to Shape Enterprise Technology in 202410 Trends Likely to Shape Enterprise Technology in 2024
10 Trends Likely to Shape Enterprise Technology in 2024Mind IT Systems
 
The title is not connected to what is inside
The title is not connected to what is insideThe title is not connected to what is inside
The title is not connected to what is insideshinachiaurasa2
 
8257 interfacing 2 in microprocessor for btech students
8257 interfacing 2 in microprocessor for btech students8257 interfacing 2 in microprocessor for btech students
8257 interfacing 2 in microprocessor for btech studentsHimanshiGarg82
 
AI Mastery 201: Elevating Your Workflow with Advanced LLM Techniques
AI Mastery 201: Elevating Your Workflow with Advanced LLM TechniquesAI Mastery 201: Elevating Your Workflow with Advanced LLM Techniques
AI Mastery 201: Elevating Your Workflow with Advanced LLM TechniquesVictorSzoltysek
 
Unlocking the Future of AI Agents with Large Language Models
Unlocking the Future of AI Agents with Large Language ModelsUnlocking the Future of AI Agents with Large Language Models
Unlocking the Future of AI Agents with Large Language Modelsaagamshah0812
 
BUS PASS MANGEMENT SYSTEM USING PHP.pptx
BUS PASS MANGEMENT SYSTEM USING PHP.pptxBUS PASS MANGEMENT SYSTEM USING PHP.pptx
BUS PASS MANGEMENT SYSTEM USING PHP.pptxalwaysnagaraju26
 
Payment Gateway Testing Simplified_ A Step-by-Step Guide for Beginners.pdf
Payment Gateway Testing Simplified_ A Step-by-Step Guide for Beginners.pdfPayment Gateway Testing Simplified_ A Step-by-Step Guide for Beginners.pdf
Payment Gateway Testing Simplified_ A Step-by-Step Guide for Beginners.pdfkalichargn70th171
 
Sector 18, Noida Call girls :8448380779 Model Escorts | 100% verified
Sector 18, Noida Call girls :8448380779 Model Escorts | 100% verifiedSector 18, Noida Call girls :8448380779 Model Escorts | 100% verified
Sector 18, Noida Call girls :8448380779 Model Escorts | 100% verifiedDelhi Call girls
 

Recently uploaded (20)

ManageIQ - Sprint 236 Review - Slide Deck
ManageIQ - Sprint 236 Review - Slide DeckManageIQ - Sprint 236 Review - Slide Deck
ManageIQ - Sprint 236 Review - Slide Deck
 
VTU technical seminar 8Th Sem on Scikit-learn
VTU technical seminar 8Th Sem on Scikit-learnVTU technical seminar 8Th Sem on Scikit-learn
VTU technical seminar 8Th Sem on Scikit-learn
 
MarTech Trend 2024 Book : Marketing Technology Trends (2024 Edition) How Data...
MarTech Trend 2024 Book : Marketing Technology Trends (2024 Edition) How Data...MarTech Trend 2024 Book : Marketing Technology Trends (2024 Edition) How Data...
MarTech Trend 2024 Book : Marketing Technology Trends (2024 Edition) How Data...
 
Crypto Cloud Review - How To Earn Up To $500 Per DAY Of Bitcoin 100% On AutoP...
Crypto Cloud Review - How To Earn Up To $500 Per DAY Of Bitcoin 100% On AutoP...Crypto Cloud Review - How To Earn Up To $500 Per DAY Of Bitcoin 100% On AutoP...
Crypto Cloud Review - How To Earn Up To $500 Per DAY Of Bitcoin 100% On AutoP...
 
Exploring the Best Video Editing App.pdf
Exploring the Best Video Editing App.pdfExploring the Best Video Editing App.pdf
Exploring the Best Video Editing App.pdf
 
%in tembisa+277-882-255-28 abortion pills for sale in tembisa
%in tembisa+277-882-255-28 abortion pills for sale in tembisa%in tembisa+277-882-255-28 abortion pills for sale in tembisa
%in tembisa+277-882-255-28 abortion pills for sale in tembisa
 
%in ivory park+277-882-255-28 abortion pills for sale in ivory park
%in ivory park+277-882-255-28 abortion pills for sale in ivory park %in ivory park+277-882-255-28 abortion pills for sale in ivory park
%in ivory park+277-882-255-28 abortion pills for sale in ivory park
 
%in Stilfontein+277-882-255-28 abortion pills for sale in Stilfontein
%in Stilfontein+277-882-255-28 abortion pills for sale in Stilfontein%in Stilfontein+277-882-255-28 abortion pills for sale in Stilfontein
%in Stilfontein+277-882-255-28 abortion pills for sale in Stilfontein
 
%in kempton park+277-882-255-28 abortion pills for sale in kempton park
%in kempton park+277-882-255-28 abortion pills for sale in kempton park %in kempton park+277-882-255-28 abortion pills for sale in kempton park
%in kempton park+277-882-255-28 abortion pills for sale in kempton park
 
Software Quality Assurance Interview Questions
Software Quality Assurance Interview QuestionsSoftware Quality Assurance Interview Questions
Software Quality Assurance Interview Questions
 
CHEAP Call Girls in Pushp Vihar (-DELHI )🔝 9953056974🔝(=)/CALL GIRLS SERVICE
CHEAP Call Girls in Pushp Vihar (-DELHI )🔝 9953056974🔝(=)/CALL GIRLS SERVICECHEAP Call Girls in Pushp Vihar (-DELHI )🔝 9953056974🔝(=)/CALL GIRLS SERVICE
CHEAP Call Girls in Pushp Vihar (-DELHI )🔝 9953056974🔝(=)/CALL GIRLS SERVICE
 
LEVEL 5 - SESSION 1 2023 (1).pptx - PDF 123456
LEVEL 5   - SESSION 1 2023 (1).pptx - PDF 123456LEVEL 5   - SESSION 1 2023 (1).pptx - PDF 123456
LEVEL 5 - SESSION 1 2023 (1).pptx - PDF 123456
 
10 Trends Likely to Shape Enterprise Technology in 2024
10 Trends Likely to Shape Enterprise Technology in 202410 Trends Likely to Shape Enterprise Technology in 2024
10 Trends Likely to Shape Enterprise Technology in 2024
 
The title is not connected to what is inside
The title is not connected to what is insideThe title is not connected to what is inside
The title is not connected to what is inside
 
8257 interfacing 2 in microprocessor for btech students
8257 interfacing 2 in microprocessor for btech students8257 interfacing 2 in microprocessor for btech students
8257 interfacing 2 in microprocessor for btech students
 
AI Mastery 201: Elevating Your Workflow with Advanced LLM Techniques
AI Mastery 201: Elevating Your Workflow with Advanced LLM TechniquesAI Mastery 201: Elevating Your Workflow with Advanced LLM Techniques
AI Mastery 201: Elevating Your Workflow with Advanced LLM Techniques
 
Unlocking the Future of AI Agents with Large Language Models
Unlocking the Future of AI Agents with Large Language ModelsUnlocking the Future of AI Agents with Large Language Models
Unlocking the Future of AI Agents with Large Language Models
 
BUS PASS MANGEMENT SYSTEM USING PHP.pptx
BUS PASS MANGEMENT SYSTEM USING PHP.pptxBUS PASS MANGEMENT SYSTEM USING PHP.pptx
BUS PASS MANGEMENT SYSTEM USING PHP.pptx
 
Payment Gateway Testing Simplified_ A Step-by-Step Guide for Beginners.pdf
Payment Gateway Testing Simplified_ A Step-by-Step Guide for Beginners.pdfPayment Gateway Testing Simplified_ A Step-by-Step Guide for Beginners.pdf
Payment Gateway Testing Simplified_ A Step-by-Step Guide for Beginners.pdf
 
Sector 18, Noida Call girls :8448380779 Model Escorts | 100% verified
Sector 18, Noida Call girls :8448380779 Model Escorts | 100% verifiedSector 18, Noida Call girls :8448380779 Model Escorts | 100% verified
Sector 18, Noida Call girls :8448380779 Model Escorts | 100% verified
 

N_Asm Assembly registers (sol)

  • 1. http://www.tutorialspoint.com/assembly_prog ramming /assembly_reg isters.htm Copyright © tutorialspoint.com ASSEMBLY - REGISTERS Processor operations mostly involve processing data. This data canbe stored inmemory and accessed from thereon. However, reading data fromand storing data into memory slows downthe processor, as it involves complicated processes of sending the data request across the controlbus and into the memory storage unit and getting the data throughthe same channel. To speed up the processor operations, the processor includes some internalmemory storage locations, called registers. The registers store data elements for processing without having to access the memory. A limited number of registers are built into the processor chip. Processor Registers There are ten32-bit and six 16-bit processor registers inIA-32 architecture. The registers are grouped into three categories: Generalregisters Controlregisters Segment registers The generalregisters are further divided into the following groups: Data registers Pointer registers Index registers Data Registers Four 32-bit data registers are used for arithmetic, logicaland other operations. These 32-bit registers canbe used inthree ways: 1. As complete 32-bit data registers: EAX, EBX, ECX, EDX. 2. Lower halves of the 32-bit registers canbe used as four 16-bit data registers: AX, BX, CX and DX. 3. Lower and higher halves of the above-mentioned four 16-bit registers canbe used as eight 8-bit data registers: AH, AL, BH, BL, CH, CL, DH, and DL. Some of these data registers have specific use inarithmeticaloperations. AX is the primary accumulator; it is used ininput/output and most arithmetic instructions. For example, in multiplicationoperation, one operand is stored inEAX or AX or AL register according to the size of the operand.
  • 2. BX is known as the base register as it could be used inindexed addressing. CX is known as the count register as the ECX, CX registers store the loop count initerative operations. DX is known as the data register. It is also used ininput/output operations. It is also used withAX register along withDX for multiply and divide operations involving large values. Pointer Registers The pointer registers are 32-bit EIP, ESP and EBP registers and corresponding 16-bit right portions IP, SP and BP. There are three categories of pointer registers: Instruction Pointer (IP) - the 16-bit IP register stores the offset address of the next instructionto be executed. IP inassociationwiththe CS register (as CS:IP) gives the complete address of the current instructioninthe code segment. Stack Pointer (SP) - the 16-bit SP register provides the offset value withinthe programstack. SP in associationwiththe SS register (SS:SP) refers to be current positionof data or address withinthe programstack. Base Pointer (BP) - the 16-bit BP register mainly helps inreferencing the parameter variables passed to a subroutine. The address inSS register is combined withthe offset inBP to get the locationof the parameter. BP canalso be combined withDI and SI as base register for specialaddressing. Index Registers The 32-bit index registers ESI and EDI and their 16-bit rightmost portions SI and DI are used for indexed addressing and sometimes used inadditionand subtraction. There are two sets of index pointers: Source Index (SI) - it is used as source index for string operations Destination Index (DI) - it is used as destinationindex for string operations. Control Registers The 32-bit instructionpointer register and 32-bit flags register combined are considered as the control registers. Many instructions involve comparisons and mathematicalcalculations and change the status of the flags and some other conditionalinstructions test the value of these status flags to take the controlflow to other location. The commonflag bits are: Overflow Flag (OF): indicates the overflow of a high-order bit (leftmost bit) of data after a signed arithmetic operation.
  • 3. Direction Flag (DF): determines left or right directionfor moving or comparing string data. Whenthe DF value is 0, the string operationtakes left-to-right directionand whenthe value is set to 1, the string operationtakes right-to-left direction. Interrupt Flag (IF): determines whether the externalinterrupts like keyboard entry, etc., are to be ignored or processed. It disables the externalinterrupt whenthe value is 0 and enables interrupts when set to 1. Trap Flag (TF): allows setting the operationof the processor insingle-step mode. The DEBUG programwe used sets the trap flag, so we could step throughthe executionone instructionat a time. Sign Flag (SF): shows the signof the result of anarithmetic operation. This flag is set according to the signof a data itemfollowing the arithmetic operation. The signis indicated by the high-order of leftmost bit. A positive result clears the value of SF to 0 and negative result sets it to 1. Zero Flag (ZF): indicates the result of anarithmetic or comparisonoperation. A nonzero result clears the zero flag to 0, and a zero result sets it to 1. Auxiliary Carry Flag (AF): contains the carry frombit 3 to bit 4 following anarithmetic operation; used for specialized arithmetic. The AF is set whena 1-byte arithmetic operationcauses a carry frombit 3 into bit 4. Parity Flag (PF): indicates the totalnumber of 1-bits inthe result obtained fromanarithmetic operation. Anevennumber of 1-bits clears the parity flag to 0 and anodd number of 1-bits sets the parity flag to 1. Carry Flag (CF): contains the carry of 0 or 1 froma high-order bit (leftmost) after anarithmetic operation. It also stores the contents of last bit of a shift or rotate operation. The following table indicates the positionof flag bits inthe 16-bit Flags register: Flag: O D I T S Z A P C Bit no: 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0 Segment Registers Segments are specific areas defined ina programfor containing data, code and stack. There are three main segments: Code Segment: it contains allthe instructions to be executed. A 16-bit Code Segment register or CS register stores the starting address of the code segment. Data Segment: it contains data, constants and work areas. A 16-bit Data Segment register or DS register stores the starting address of the data segment. Stack Segment: it contains data and returnaddresses of procedures or subroutines. It is implemented as a 'stack' data structure. The Stack Segment register or SS register stores the starting address of the stack. Apart fromthe DS, CS and SS registers, there are other extra segment registers - ES (extra segment), FS and GS, whichprovide additionalsegments for storing data. Inassembly programming, a programneeds to access the memory locations. Allmemory locations withina segment are relative to the starting address of the segment. A segment begins inanaddress evenly divisible by 16 or hexadecimal10. So, the rightmost hex digit inallsuchmemory addresses is 0, whichis not generally stored inthe segment registers. The segment registers stores the starting addresses of a segment. To get the exact locationof data or instructionwithina segment, anoffset value (or displacement) is required. To reference any memory locationina segment, the processor combines the segment address inthe segment register withthe offset value of the location. Example:
  • 4. Look at the following simple programto understand the use of registers inassembly programming. This programdisplays 9 stars onthe screenalong witha simple message: section .text global _start ;must be declared for linker (gcc) _start: ;tell linker entry point mov edx,len ;message length mov ecx,msg ;message to write mov ebx,1 ;file descriptor (stdout) mov eax,4 ;system call number (sys_write) int 0x80 ;call kernel mov edx,9 ;message length mov ecx,s2 ;message to write mov ebx,1 ;file descriptor (stdout) mov eax,4 ;system call number (sys_write) int 0x80 ;call kernel mov eax,1 ;system call number (sys_exit) int 0x80 ;call kernel section .data msg db 'Displaying 9 stars',0xa ;a message len equ $ - msg ;length of message s2 times 9 db '*' Whenthe above code is compiled and executed, it produces the following result: Displaying 9 stars *********