Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống
1
/ 577 trang
THÔNG TIN TÀI LIỆU
Thông tin cơ bản
Định dạng
Số trang
577
Dung lượng
6,61 MB
Nội dung
[...]... Chapter 5: Moving Data 91 Defining Data Elements 91 The data section Defining static symbols The bss section 91 94 95 Moving Data Elements 97 The MOV instruction formats Moving immediate data to registers and memory Moving data between registers Moving data between memory and registers Conditional Move Instructions The CMOV instructions Using CMOV instructions Exchanging Data The data exchange instructions... data 299 302 304 304 304 Passing Data Values in C Style Revisiting the stack Passing function parameters on the stack Function prologue and epilogue Defining local function data xviii 306 306 306 308 309 Contents Cleaning out the stack An example Watching the stack in action 312 312 314 Using Separate Function Files 317 Creating a separate function file Creating the executable file Debugging separate... Coded Decimal 178 What is BCD? FPU BCD values Moving BCD values 178 179 180 Floating-Point Numbers What are floating-point numbers? Standard floating-point data types IA-32 floating-point values Defining floating-point values in GAS Moving floating-point values Using preset floating-point values xvi 182 182 184 186 187 187 189 Contents SSE floating-point data types Moving SSE floating-point values Conversions... the location of the instruction pointer, such as jumping to a specific location in the program Similarly, a data pointer is used to help the processor keep track of where the data area in memory starts This area is called the stack As new data elements are placed in the stack, the pointer moves “down” in memory As data is read from the stack, the pointer moves “up” in memory 2 What Is Assembly Language? ... contain one or more bytes of information that instruct the processor to perform a specific task As each instruction code is read from memory, any data required for the instruction code is also stored and read in memory The memory bytes that contain the instruction codes are no different than the bytes that contain the data used by the processor To differentiate between data and instruction codes, special... you can start to analyze the assembly language code generated by the compiler, you must understand the assembly language instructions The chapters in this section are as follows: xxiv Introduction Chapter 5, “Moving Data,” shows how data elements are moved in assembly language programs The concepts of registers, memory locations, and the stack are presented, and examples are shown for moving data between... grateful for your feedback By sending in errata, you may save another reader hours of frustration, and at the same time you will be helping us provide even higher quality information To find the errata page for this book, go to www.wrox.com and locate the title using the Search box or one of the title lists Then, on the book details page, click the Book Errata link On this page, you can view all errata... complex floating-point arithmetic Floating-point arithmetic is often a crucial element to data processing programs, and knowing how it works greatly benefits high-level language programmers Chapter 10, “Working with Strings,” presents the various assembly language string-handling instructions Character data is another important facet of high-level language programming Understanding how the assembly language. .. demonstrate the assembly language features Chapter 4, “A Sample Assembly Language Program,” discusses specifically how to use these tools on a Linux platform to create, assemble, link, and debug an assembly language program If you do not have an installed Linux platform available, Chapter 4 demonstrates how to use a Linux distribution that can be booted directly from CD, without modifying the workstation... retrieving packed integer values Performing MMX operations Using SSE Instructions Moving data Processing data Using SSE2 Instructions 487 488 497 498 499 504 Moving data Processing data 505 505 SSE3 Instructions Summary 508 508 Index 511 xxii Introduction Assembly language is one of the most misunderstood programming languages in use When the term assembly language is used, it often invokes the idea of