1/119
Looks like no tags are added yet.
Name | Mastery | Learn | Test | Matching | Spaced | Call with Kai | Chat |
|---|
No analytics yet
Send a link to your students to track their progress
ASCII Control Code 00h
NUL (Null character)
ASCII Control Code 01h
Ctrl-A, SOH (Start of header)
ASCII Control Code 02h
Ctrl-B, STX (Start of text)
ASCII Control Code 03h
Ctrl-C, ETX (End of text)
ASCII Control Code 04h
Ctrl-D, EOT (End of transmission)
ASCII Control Code 05h
Ctrl-E, ENQ (Enquiry)
ASCII Control Code 06h
Ctrl-F, ACK (Acknowledge)
ASCII Control Code 07h
Ctrl-G, BEL (Bell)
ASCII Control Code 08h
Ctrl-H, BS (Backspace)
ASCII Control Code 09h
Ctrl-I, HT (Horizontal tab)
ASCII Control Code 0Ah
Ctrl-J, LF (Line feed)
ASCII Control Code 0Bh
Ctrl-K, VT (Vertical tab)
ASCII Control Code 0Ch
Ctrl-L, FF (Form feed)
ASCII Control Code 0Dh
Ctrl-M, CR (Carriage return)
ASCII Control Code 0Eh
Ctrl-N, SO (Shift out)
ASCII Control Code 0Fh
Ctrl-O, SI (Shift in)
ASCII Control Code 10h
Ctrl-P, DLE (Data link escape)
ALT-Key Scan Code for Key 1
78h
ALT-Key Scan Code for Key 2
79h
ALT-Key Scan Code for Key A
1Eh
ALT-Key Scan Code for Key B
30h
ALT-Key Scan Code for Key C
2Eh
Keyboard Function Key F1 Normal Scan Code
3B
Keyboard Function Key F2 Normal Scan Code
3C
Keyboard Function Key F3 Normal Scan Code
3D
Keyboard Function Key F4 Normal Scan Code
3E
Keyboard Function Key F5 Normal Scan Code
3F
Keyboard Function Key F6 Normal Scan Code
40
Keyboard Function Key F7 Normal Scan Code
41
Keyboard Function Key F8 Normal Scan Code
42
Virtual machine concept
An architectural topic covered in the book that leads naturally into operating systems and compiler writing.
Instruction set architecture
A foundational topic included in the text for subsequent computer architecture courses.
Elementary Boolean operations
Topic leading into computer architecture and operating systems, dealing with logical states.
Instruction execution cycle
A core computer architecture topic involving how instructions are fetched and executed.
Memory access and handshaking
Topics that lead naturally into computer architecture and operating systems.
Interrupts and polling
Hardware and system communication topics covered to bridge software and physical devices.
Hardware-based I/O
A topic relating to how programs interact directly with input and output hardware.
Floating-point binary representation
A numerical topic covered to explain how non-integer real numbers are represented in binary.
Protected memory and paging
Topics relating specifically to x86 and Intel64 architecture memory management.
Memory segmentation in real-address mode
An x86 and Intel64 architecture feature used in legacy or real-address mode execution.
16-Bit interrupt handling
An architectural mechanism relating specifically to x86 and Intel64 systems.
MS-DOS and BIOS system calls
System calls implemented via interrupts for low-level machine interaction.
Floating-point unit architecture
The hardware architecture and programming model for x86 numeric coprocessors.
Instruction encoding
The study of how assembly instructions are translated into raw machine byte sequences.
Irvine64 library
A 64-bit version of the author's subroutine library created for early chapter examples.
Short answer questions
Review questions moved to the ends of chapters in the seventh edition.
Algorithm workbench exercises
End-of-chapter exercises requiring students to write a short amount of code to accomplish a goal.
Printed chapters focus
Protected mode programming in 32-bit and 64-bit under recent versions of Microsoft Windows.
Online electronic chapters
Four chapters covering 16-bit programming, BIOS, MS-DOS services, and graphics supplied online.
Irvine16.lib
The 16-bit version of the subroutine library running in real-address mode for Chapters 14 through 17.
Testing environment
Microsoft Macro Assembler Version 11.0 running in Microsoft Visual Studio 2012.
Debugger's role
Described as a programmer's best friend for catching errors and learning about the CPU and OS.
High-level language portability
The property where source programs compile and run on a wide variety of computer systems.
MASM
Microsoft Macro Assembler, an industrial-strength assembler included with Microsoft Visual Studio.
Assembler utility
A utility program that converts source code programs from assembly language into machine language.
Linker utility
A utility program that combines individual files created by an assembler into a single executable program.
Debugger utility
A utility that lets you step through a running program and examine registers and memory.
Assembly language relationship
Has a one-to-one relationship with machine language where each instruction corresponds to a single machine instruction.
High-level language relationship
Languages like C++ and Java have a one-to-many relationship with assembly and machine language.
Assembly language portability
Assembly language is not portable because it is designed for a specific processor family.
Embedded Programs
Short programs stored in small memory in single-purpose devices like phones and appliances.
Real-time Applications
Applications dealing with simulation and hardware monitoring requiring precise timing.
Game Consoles Optimization
Software optimized for small code size and fast execution using direct hardware access.
Hardware and OS Interaction
Assembly language helps gain an overall understanding of computer architecture and operating systems.
Low-level Bit Manipulation
High-level languages sometimes abstract data representation, requiring assembly subroutines.
Device Drivers
Programs translating general OS commands into specific hardware references, often containing assembly.
Assembly Language Rules
Most rules are based on physical limitations of the target processor and its machine language.
Assembly vs High-Level Restrictions
Assembly has fewer syntax rules and can access any memory address directly.
Assembly Programming Price
The freedom of low-level access comes at the cost of spending a lot of time debugging.
Virtual Machine Concept
A software program or model that emulates the functions of another physical or virtual computer.
Interpretation
Executing L1 programs by decoding and executing each instruction at runtime using an L0 program.
Translation
Converting an entire L1 program into an L0 program before executing it directly on hardware.
Level 1 Virtual Machine
Represents the computer's digital logic hardware.
Instruction Set Architecture (ISA)
Level 2 of the virtual machine, also referred to as machine language.
Assembly Language Level
Appears at Level 3 of the virtual machine, using short mnemonics like ADD and MOV.
High-Level Languages Level
Appears at Level 4, translating powerful statements into multiple assembly instructions.
Numbering Base
The maximum number of symbols that can be assigned to a single digit in a numbering system.
Most Significant Bit (MSB)
The bit on the far left of a binary number.
Least Significant Bit (LSB)
The bit on the far right of a binary number, representing 2^0.
Signed vs Unsigned Integer
A signed integer can be positive or negative, while an unsigned integer is default positive.
Translating Decimal to Binary
Repeatedly divide the unsigned decimal integer by 2, saving each remainder as a binary digit.
Binary Addition Carry
When adding 1 to 1 in binary, the result is 10, generating a carry to the next-highest bit position.
Basic Storage Unit in x86
A byte, containing 8 bits.
Doubleword Size
A storage size equal to 4 bytes or 32 bits.
Quadword Size
A storage size equal to 8 bytes or 64 bits.
One Megabyte Size
Equal to 2^20 or 1,048,576 bytes.
Hexadecimal Digit Representation
Each hexadecimal digit represents four binary bits, with A through F representing decimal 10 through 15.
Signed Binary MSB Sign Rule
For x86 processors, a sign bit of 0 indicates positive and 1 indicates negative.
Two's-Complement Representation
Formed by inverting the bits of a binary integer and adding 1, serving as its additive inverse.
Converting Hexadecimal Two's Complement
Reverse all bits by subtracting each digit from 15, then add 1 to the result.
Signed Decimal to Binary Conversion Steps
1. Convert absolute value to binary. 2. If negative, create the two's complement of the binary result.
Signed Decimal to Hexadecimal Steps
1. Convert absolute value to hexadecimal. 2. If negative, take the two's complement of the hexadecimal value.
Signed Hexadecimal to Decimal Steps
1. If negative, take its two's complement; otherwise retain as-is. 2. Convert to decimal and attach a minus sign if originally negative.
Determining Hexadecimal Sign
Inspect the most significant digit. If digit ≥ 8, it is negative; if digit ≤ 7, it is positive.
Signed Byte Storage Size
8 bits, with a value range from -2^7 to +2^7 - 1.
Signed Word Storage Size
16 bits, with a value range from -2^15 to +2^15 - 1.
Signed Doubleword Storage Size
32 bits, with a value range from -2^31 to +2^31 - 1.
Signed Quadword Storage Size
64 bits, with a value range from -2^63 to +2^63 - 1.
Signed Double Quadword Storage Size
128 bits, with a value range from -2^127 to +2^127 - 1.
Alternative Binary Subtraction Method
Reverse the sign of the subtracted value (negate by inverting bits and adding 1) and then add the two values.