Tanenbaum, Structured Computer Organization, Fifth Edition, (c) 2006 Pearson Education, Inc. All...
Transcript of Tanenbaum, Structured Computer Organization, Fifth Edition, (c) 2006 Pearson Education, Inc. All...
![Page 1: Tanenbaum, Structured Computer Organization, Fifth Edition, (c) 2006 Pearson Education, Inc. All rights reserved. 0-13-148521-0 Assembly Language Programming.](https://reader036.fdocuments.net/reader036/viewer/2022062620/551b3c36550346d41a8b548d/html5/thumbnails/1.jpg)
Tanenbaum, Structured Computer Organization, Fifth Edition, (c) 2006 Pearson Education, Inc. All rights reserved. 0-13-148521-0
Assembly Language Programming
Appendix C
![Page 2: Tanenbaum, Structured Computer Organization, Fifth Edition, (c) 2006 Pearson Education, Inc. All rights reserved. 0-13-148521-0 Assembly Language Programming.](https://reader036.fdocuments.net/reader036/viewer/2022062620/551b3c36550346d41a8b548d/html5/thumbnails/2.jpg)
Tanenbaum, Structured Computer Organization, Fifth Edition, (c) 2006 Pearson Education, Inc. All rights reserved. 0-13-148521-0
A Small Assembly Language Program
(a) An assembly language program. (b) The corresponding tracer display.
![Page 3: Tanenbaum, Structured Computer Organization, Fifth Edition, (c) 2006 Pearson Education, Inc. All rights reserved. 0-13-148521-0 Assembly Language Programming.](https://reader036.fdocuments.net/reader036/viewer/2022062620/551b3c36550346d41a8b548d/html5/thumbnails/3.jpg)
Tanenbaum, Structured Computer Organization, Fifth Edition, (c) 2006 Pearson Education, Inc. All rights reserved. 0-13-148521-0
The General Registers
The 8088 registers.
![Page 4: Tanenbaum, Structured Computer Organization, Fifth Edition, (c) 2006 Pearson Education, Inc. All rights reserved. 0-13-148521-0 Assembly Language Programming.](https://reader036.fdocuments.net/reader036/viewer/2022062620/551b3c36550346d41a8b548d/html5/thumbnails/4.jpg)
Tanenbaum, Structured Computer Organization, Fifth Edition, (c) 2006 Pearson Education, Inc. All rights reserved. 0-13-148521-0
Addressing (1)
Operand addressing modes. The symbol # indicates a numerical value or label.
![Page 5: Tanenbaum, Structured Computer Organization, Fifth Edition, (c) 2006 Pearson Education, Inc. All rights reserved. 0-13-148521-0 Assembly Language Programming.](https://reader036.fdocuments.net/reader036/viewer/2022062620/551b3c36550346d41a8b548d/html5/thumbnails/5.jpg)
Tanenbaum, Structured Computer Organization, Fifth Edition, (c) 2006 Pearson Education, Inc. All rights reserved. 0-13-148521-0
Addressing (2)
Operand addressing modes. The symbol # indicates a numerical value or label.
![Page 6: Tanenbaum, Structured Computer Organization, Fifth Edition, (c) 2006 Pearson Education, Inc. All rights reserved. 0-13-148521-0 Assembly Language Programming.](https://reader036.fdocuments.net/reader036/viewer/2022062620/551b3c36550346d41a8b548d/html5/thumbnails/6.jpg)
Tanenbaum, Structured Computer Organization, Fifth Edition, (c) 2006 Pearson Education, Inc. All rights reserved. 0-13-148521-0
The 8088 Instruction Set (1)
Some of the most important 8088 instructions.
![Page 7: Tanenbaum, Structured Computer Organization, Fifth Edition, (c) 2006 Pearson Education, Inc. All rights reserved. 0-13-148521-0 Assembly Language Programming.](https://reader036.fdocuments.net/reader036/viewer/2022062620/551b3c36550346d41a8b548d/html5/thumbnails/7.jpg)
Tanenbaum, Structured Computer Organization, Fifth Edition, (c) 2006 Pearson Education, Inc. All rights reserved. 0-13-148521-0
The 8088 Instruction Set (2)
Some of the most important 8088 instructions.
![Page 8: Tanenbaum, Structured Computer Organization, Fifth Edition, (c) 2006 Pearson Education, Inc. All rights reserved. 0-13-148521-0 Assembly Language Programming.](https://reader036.fdocuments.net/reader036/viewer/2022062620/551b3c36550346d41a8b548d/html5/thumbnails/8.jpg)
Tanenbaum, Structured Computer Organization, Fifth Edition, (c) 2006 Pearson Education, Inc. All rights reserved. 0-13-148521-0
The 8088 Instruction Set (3)
Some of the most important 8088 instructions.
![Page 9: Tanenbaum, Structured Computer Organization, Fifth Edition, (c) 2006 Pearson Education, Inc. All rights reserved. 0-13-148521-0 Assembly Language Programming.](https://reader036.fdocuments.net/reader036/viewer/2022062620/551b3c36550346d41a8b548d/html5/thumbnails/9.jpg)
Tanenbaum, Structured Computer Organization, Fifth Edition, (c) 2006 Pearson Education, Inc. All rights reserved. 0-13-148521-0
Conditional Jumps
Conditional jumps.
![Page 10: Tanenbaum, Structured Computer Organization, Fifth Edition, (c) 2006 Pearson Education, Inc. All rights reserved. 0-13-148521-0 Assembly Language Programming.](https://reader036.fdocuments.net/reader036/viewer/2022062620/551b3c36550346d41a8b548d/html5/thumbnails/10.jpg)
Tanenbaum, Structured Computer Organization, Fifth Edition, (c) 2006 Pearson Education, Inc. All rights reserved. 0-13-148521-0
Subroutine Calls
An example stack.
![Page 11: Tanenbaum, Structured Computer Organization, Fifth Edition, (c) 2006 Pearson Education, Inc. All rights reserved. 0-13-148521-0 Assembly Language Programming.](https://reader036.fdocuments.net/reader036/viewer/2022062620/551b3c36550346d41a8b548d/html5/thumbnails/11.jpg)
Tanenbaum, Structured Computer Organization, Fifth Edition, (c) 2006 Pearson Education, Inc. All rights reserved. 0-13-148521-0
System Calls and System Subroutines
Some UNIX system calls and subroutines available in the interpreter.
![Page 12: Tanenbaum, Structured Computer Organization, Fifth Edition, (c) 2006 Pearson Education, Inc. All rights reserved. 0-13-148521-0 Assembly Language Programming.](https://reader036.fdocuments.net/reader036/viewer/2022062620/551b3c36550346d41a8b548d/html5/thumbnails/12.jpg)
Tanenbaum, Structured Computer Organization, Fifth Edition, (c) 2006 Pearson Education, Inc. All rights reserved. 0-13-148521-0
The ACK-Based Assembler, as88 (1)
The as88 pseudoinstructions.
![Page 13: Tanenbaum, Structured Computer Organization, Fifth Edition, (c) 2006 Pearson Education, Inc. All rights reserved. 0-13-148521-0 Assembly Language Programming.](https://reader036.fdocuments.net/reader036/viewer/2022062620/551b3c36550346d41a8b548d/html5/thumbnails/13.jpg)
Tanenbaum, Structured Computer Organization, Fifth Edition, (c) 2006 Pearson Education, Inc. All rights reserved. 0-13-148521-0
The ACK-Based Assembler, as88 (2)
Some of the escapes allowed by as88.
![Page 14: Tanenbaum, Structured Computer Organization, Fifth Edition, (c) 2006 Pearson Education, Inc. All rights reserved. 0-13-148521-0 Assembly Language Programming.](https://reader036.fdocuments.net/reader036/viewer/2022062620/551b3c36550346d41a8b548d/html5/thumbnails/14.jpg)
Tanenbaum, Structured Computer Organization, Fifth Edition, (c) 2006 Pearson Education, Inc. All rights reserved. 0-13-148521-0
The Tracer
The tracer’s windows.
![Page 15: Tanenbaum, Structured Computer Organization, Fifth Edition, (c) 2006 Pearson Education, Inc. All rights reserved. 0-13-148521-0 Assembly Language Programming.](https://reader036.fdocuments.net/reader036/viewer/2022062620/551b3c36550346d41a8b548d/html5/thumbnails/15.jpg)
Tanenbaum, Structured Computer Organization, Fifth Edition, (c) 2006 Pearson Education, Inc. All rights reserved. 0-13-148521-0
Tracer Commands (1)
The tracer commands. Each command must be followed by a carriagereturn (the Enter key). An empty box indicates that just a carriage return is needed. Commands with no Address field listed above have no address. The # symbol represents an integer offset.
![Page 16: Tanenbaum, Structured Computer Organization, Fifth Edition, (c) 2006 Pearson Education, Inc. All rights reserved. 0-13-148521-0 Assembly Language Programming.](https://reader036.fdocuments.net/reader036/viewer/2022062620/551b3c36550346d41a8b548d/html5/thumbnails/16.jpg)
Tanenbaum, Structured Computer Organization, Fifth Edition, (c) 2006 Pearson Education, Inc. All rights reserved. 0-13-148521-0
Tracer Commands (2)
The tracer commands. Each command must be followed by a carriagereturn (the Enter key). An empty box indicates that just a carriage return is needed. Commands with no Address field listed above have no address. The # symbol represents an integer offset.
![Page 17: Tanenbaum, Structured Computer Organization, Fifth Edition, (c) 2006 Pearson Education, Inc. All rights reserved. 0-13-148521-0 Assembly Language Programming.](https://reader036.fdocuments.net/reader036/viewer/2022062620/551b3c36550346d41a8b548d/html5/thumbnails/17.jpg)
Tanenbaum, Structured Computer Organization, Fifth Edition, (c) 2006 Pearson Education, Inc. All rights reserved. 0-13-148521-0
Hello World Example
(a) HlloWrld.s.(b) The corresponding tracer window.
![Page 18: Tanenbaum, Structured Computer Organization, Fifth Edition, (c) 2006 Pearson Education, Inc. All rights reserved. 0-13-148521-0 Assembly Language Programming.](https://reader036.fdocuments.net/reader036/viewer/2022062620/551b3c36550346d41a8b548d/html5/thumbnails/18.jpg)
Tanenbaum, Structured Computer Organization, Fifth Edition, (c) 2006 Pearson Education, Inc. All rights reserved. 0-13-148521-0
General Registers Example
(a) Part of a program.
(b) The tracer register window after line 7 has been executed.
(c) The registers.
![Page 19: Tanenbaum, Structured Computer Organization, Fifth Edition, (c) 2006 Pearson Education, Inc. All rights reserved. 0-13-148521-0 Assembly Language Programming.](https://reader036.fdocuments.net/reader036/viewer/2022062620/551b3c36550346d41a8b548d/html5/thumbnails/19.jpg)
Tanenbaum, Structured Computer Organization, Fifth Edition, (c) 2006 Pearson Education, Inc. All rights reserved. 0-13-148521-0
Example Program (1)
The program vecprod.s.
![Page 20: Tanenbaum, Structured Computer Organization, Fifth Edition, (c) 2006 Pearson Education, Inc. All rights reserved. 0-13-148521-0 Assembly Language Programming.](https://reader036.fdocuments.net/reader036/viewer/2022062620/551b3c36550346d41a8b548d/html5/thumbnails/20.jpg)
Tanenbaum, Structured Computer Organization, Fifth Edition, (c) 2006 Pearson Education, Inc. All rights reserved. 0-13-148521-0
Example Program (2)
The program vecprod.s.
![Page 21: Tanenbaum, Structured Computer Organization, Fifth Edition, (c) 2006 Pearson Education, Inc. All rights reserved. 0-13-148521-0 Assembly Language Programming.](https://reader036.fdocuments.net/reader036/viewer/2022062620/551b3c36550346d41a8b548d/html5/thumbnails/21.jpg)
Tanenbaum, Structured Computer Organization, Fifth Edition, (c) 2006 Pearson Education, Inc. All rights reserved. 0-13-148521-0
Example Program (3)
The program vecprod.s.
![Page 22: Tanenbaum, Structured Computer Organization, Fifth Edition, (c) 2006 Pearson Education, Inc. All rights reserved. 0-13-148521-0 Assembly Language Programming.](https://reader036.fdocuments.net/reader036/viewer/2022062620/551b3c36550346d41a8b548d/html5/thumbnails/22.jpg)
Tanenbaum, Structured Computer Organization, Fifth Edition, (c) 2006 Pearson Education, Inc. All rights reserved. 0-13-148521-0
Example Program (4)
Execution of vecprod.s when it reaches line 28 for the first time.
![Page 23: Tanenbaum, Structured Computer Organization, Fifth Edition, (c) 2006 Pearson Education, Inc. All rights reserved. 0-13-148521-0 Assembly Language Programming.](https://reader036.fdocuments.net/reader036/viewer/2022062620/551b3c36550346d41a8b548d/html5/thumbnails/23.jpg)
Tanenbaum, Structured Computer Organization, Fifth Edition, (c) 2006 Pearson Education, Inc. All rights reserved. 0-13-148521-0
Example Program arrayprt
The program arrayprt before debugging.
![Page 24: Tanenbaum, Structured Computer Organization, Fifth Edition, (c) 2006 Pearson Education, Inc. All rights reserved. 0-13-148521-0 Assembly Language Programming.](https://reader036.fdocuments.net/reader036/viewer/2022062620/551b3c36550346d41a8b548d/html5/thumbnails/24.jpg)
Tanenbaum, Structured Computer Organization, Fifth Edition, (c) 2006 Pearson Education, Inc. All rights reserved. 0-13-148521-0
Example Program strngcpy.s
Copy a string.
![Page 25: Tanenbaum, Structured Computer Organization, Fifth Edition, (c) 2006 Pearson Education, Inc. All rights reserved. 0-13-148521-0 Assembly Language Programming.](https://reader036.fdocuments.net/reader036/viewer/2022062620/551b3c36550346d41a8b548d/html5/thumbnails/25.jpg)
Tanenbaum, Structured Computer Organization, Fifth Edition, (c) 2006 Pearson Education, Inc. All rights reserved. 0-13-148521-0
Example Program reverspr.s
Print a string backwards.
![Page 26: Tanenbaum, Structured Computer Organization, Fifth Edition, (c) 2006 Pearson Education, Inc. All rights reserved. 0-13-148521-0 Assembly Language Programming.](https://reader036.fdocuments.net/reader036/viewer/2022062620/551b3c36550346d41a8b548d/html5/thumbnails/26.jpg)
Tanenbaum, Structured Computer Organization, Fifth Edition, (c) 2006 Pearson Education, Inc. All rights reserved. 0-13-148521-0
Dispatch Tables (1)
A program demonstrating a multiway branch using a dispatch table.
![Page 27: Tanenbaum, Structured Computer Organization, Fifth Edition, (c) 2006 Pearson Education, Inc. All rights reserved. 0-13-148521-0 Assembly Language Programming.](https://reader036.fdocuments.net/reader036/viewer/2022062620/551b3c36550346d41a8b548d/html5/thumbnails/27.jpg)
Tanenbaum, Structured Computer Organization, Fifth Edition, (c) 2006 Pearson Education, Inc. All rights reserved. 0-13-148521-0
Dispatch Tables (2)
A program demonstrating a multiway branch using a dispatch table.
![Page 28: Tanenbaum, Structured Computer Organization, Fifth Edition, (c) 2006 Pearson Education, Inc. All rights reserved. 0-13-148521-0 Assembly Language Programming.](https://reader036.fdocuments.net/reader036/viewer/2022062620/551b3c36550346d41a8b548d/html5/thumbnails/28.jpg)
Tanenbaum, Structured Computer Organization, Fifth Edition, (c) 2006 Pearson Education, Inc. All rights reserved. 0-13-148521-0
Dispatch Tables (3)
A program demonstrating a multiway branch using a dispatch table.
![Page 29: Tanenbaum, Structured Computer Organization, Fifth Edition, (c) 2006 Pearson Education, Inc. All rights reserved. 0-13-148521-0 Assembly Language Programming.](https://reader036.fdocuments.net/reader036/viewer/2022062620/551b3c36550346d41a8b548d/html5/thumbnails/29.jpg)
Tanenbaum, Structured Computer Organization, Fifth Edition, (c) 2006 Pearson Education, Inc. All rights reserved. 0-13-148521-0
Buffered and Random File Access (1)
A program with buffered read and random file access.
![Page 30: Tanenbaum, Structured Computer Organization, Fifth Edition, (c) 2006 Pearson Education, Inc. All rights reserved. 0-13-148521-0 Assembly Language Programming.](https://reader036.fdocuments.net/reader036/viewer/2022062620/551b3c36550346d41a8b548d/html5/thumbnails/30.jpg)
Tanenbaum, Structured Computer Organization, Fifth Edition, (c) 2006 Pearson Education, Inc. All rights reserved. 0-13-148521-0
Buffered and Random File Access (2)
A program with buffered read and random file access.
![Page 31: Tanenbaum, Structured Computer Organization, Fifth Edition, (c) 2006 Pearson Education, Inc. All rights reserved. 0-13-148521-0 Assembly Language Programming.](https://reader036.fdocuments.net/reader036/viewer/2022062620/551b3c36550346d41a8b548d/html5/thumbnails/31.jpg)
Tanenbaum, Structured Computer Organization, Fifth Edition, (c) 2006 Pearson Education, Inc. All rights reserved. 0-13-148521-0
Buffered and Random File Access (3)
A program with buffered read and random file access.