base, 50
base pointer, 51
basic data types, 52
BCD code, 53
Binary Coded Decimal, 54
binary point, 55
bit, 56
bit mask, 57
bitwise logical operators, 58
Boolean algebra, 59
Boolean algebra properties
associative, 60
commutative, 61
complement, 62
distributive, 63
idempotent, 64
identity, 65
involution, 66
null, 67
Boolean expressions
canonical product, 68
canonical sum, 69
maxterm, 70
minterm, 71
product of maxterms, 72
product of sums, 73
product term, 74
sum of minterms, 75
sum of products, 76
sum term, 77
borrow, 78
branch point, 79
bus, 80, 81
address, 82, 83
asynchronous, 84
control, 85, 86
data, 87, 88
synchronous, 89
timing, 90
byte, 91
C-style string, 92
call stack, 93
canonical product, 94
canonical sum, 95
Carry Flag, 96, 97, 98
Central Processing Unit, 99, 100
CF, 101, 102, 103
circuit
combinational, 104
clock, 105
clock generator, 106
clock pulses, 107
COBOL, 108
comment field, 109
comment line, 110
compile, 111
compiler-generated label, 112
complement, 113
condition codes, 114
control characters, 115
Control Unit, 116
control unit, 117
convert
binary to decimal, 118
binary to signed decimal, 119
hexadecimal to decimal, 120
signed decimal-to-binary, 121
unsigned decimal to binary, 122
CPU, 123, 124
block diagram, 125
overview, 126
current, 127
D latch, 128
data
storing in memory, 129
data types, 130
debugger, 131
decimal fractions, 132
decoder, 133
DeMorgan’s Law, 134
device handler, 135
division, 136
do-while, 137
don’t care, 138
DRAM, 139
effective address, 140
electronics, 141
AC, 142
amp, 143
ampere, 144
battery, 145
capacitance, 146
capacitor, 147
coulomb, 148
DC, 149
direct current, 150
inductance, 151
inductor, 152
ohms, 153
parallel, 154
passive elements, 155
power supply, 156, 157
resistance, 158
resistor, 159
series, 160
time constant, 161
transient, 162
voltage, 163
voltage level, 164
volts, 165
watt, 166
ELF, 167
ELF:section, 168
ELF:segment, 169
endian
big, 170
little, 171, 172
exception processing cycle, 173
Executable and Linking Format, 174
finite state machine, 175
fixed point, 176
Flags Register, 177
flip-flop
D, 178
JK, 179
T, 180
floating point, 181
errors, 182
extended format, 183
fpn registers, 184
limitation, 185
range, 186
stack, 187
x87, 188
fractional values, 189
FSM, 190
function
called, 191, 192
calling, 193
designing, 194
epilogue, 195
prologue, 196
writing, 197
functions
32-bit mode, 198
64-bit mode, 199
gate
AND, 200
NAND, 201
NOR, 202
NOT, 203
OR, 204
XOR, 205
gate descriptor, 206
gdb, 207
commands, 208, 209, 210
Gray code, 211
handler, 212
Harvard architecture, 213
hexadecimal, 214, 215
human convenience, 216
I/O, 217
devices, 218
isolated, 219
memory-mapped, 220, 221
programming, 222
IDE, 223
identifier, 224, 225
IEEE 754, 226
exponent bias, 227
hidden bit, 228
size, 229
if-else, 230
impedance, 231
implicit argument, 232
Input/Output, 233
instruction
add, 234, 235
and, 236
call, 237
cbtw, 238, 239
cmp, 240
dec, 241
div, 242
idiv, 243
imul, 244
in, 245, 246
inc, 247
ja, 248
jae, 249
jb, 250
jbe, 251
jg, 252
jge, 253
jl, 254
jle, 255
jmp, 256
lea, 257
leave, 258
mov, 259
movs, 260
movz, 261
mul, 262
neg, 263
or, 264
pop, 265
push, 266
ret, 267
sal, 268
sar, 269
shl, 270
shr, 271
sub, 272
syscall, 273
test, 274
xor, 275
instruction execution cycle, 276
instruction fetch, 277
Instruction Pointer, 278
instruction pointer, 279
instruction prefixes, 280
Instruction Register, 281
instruction register, 282
instruction set architecture, 283
instructions
cmovsf, 284
cvtsi2sd, 285
in, 286
iret, 287
out, 288
syscall, 289
sysret, 290
integer
signed decimal, 291
unsigned decimal, 292
Integrated Development Environment, 293
interrupt handler, 294, 295
invert, 296
ISA, 297
label field, 298
least significant digit, 299
library, I/O, 300
line buffered, 301
line-oriented, 302
linker, 303
listing file, 304
literal, 305
local variables, 306, 307, 308
location, memory, 309, 310
logic
sequential, 311
logic circuit
combinational, 312
sequential, 313
logic gate, 314
logical operators, 315
Loop Control Variable, 316
machine code, 317
mantissa, 318
master/slave, 319
maxterm, 320
Mealy machine, 321
member data, 322
member function, 323, 324
Memory, 325, 326
memory
data allocation, 327
timing, 328
memory segment:code, 329
memory segment:data, 330
memory segment:heap, 331
memory segment:stack, 332
memory segment:text, 333
minimal product of sums, 334
minimal sum of products, 335
minterm, 336
mnemonic, 337, 338
mode
32-bit, 339
64-bit, 340
compatibility, 341
IA-32e, 342
long, 343
Moore machine, 344
most significant digit, 345
multiplexer, 346
multiplication, 347
mux, 348
name mangling, 349
NAND, 350, 351
negating, 352
negation, 353
negative, 354
NOR, 355
normalize, 356
NOT, 357
number systems
binary, 358, 359
decimal, 360, 361
hexadecimal, 362, 363, 364
octal, 365
object, 366
object file, 367
object, C++, 368
octal, 369
OF, 370, 371, 372
offset, 373
one’s complement, 374
operand field, 375
operation field, 376
OR, 377
Overflow Flag, 378, 379, 380
PAL, 381
parity, 382
even, 383
odd, 384
pass
by pointer, 385
by reference, 386, 387
by value, 388, 389
updates, 390
penultimate carry, 391
pipeline, 392
PLD, 393
positional notation, 394
printf
calling, 395
printf, 396
conversion codes, 397
privilege level, 398
procedural programming, 399
product of maxterms, 400
product of sums, 401
product term, 402
program, 403
Programmable Array Logic, 404
Programmable Logic Device, 405
programming
bit patterns, 406
pseudo op, 407
radix, 408
RAM, 409
Random Access Memory, 410
read, 411, 412
Read Only Memory, 413
real number, 414
record, 415
red zone, 416
reduced radix complement, 417
register
general-purpose, 418
names, 419
register file, 420
register storage class, 421
registers, 422, 423
repetition, 424
return address, 425
return value, 426, 427
REX, 428
rflags, 429, 430, 431
ROM, 432, 433
round off, 434
scalar, 435
scanf
calling, 436
scanf, 437
conversion codes, 438
section:text, 439
shift bits, 440
left, 441
right, 442
shift register, 443
short-circuit evaluation, 444
SIB byte, 445
sign-extension, 446
significand, 447
SIMD, 448
Single Instruction, Multiple Data, 449
SR latch
Reset, 450
Set, 451
SRAM, 452
SSE, 453
scalar instructions, 454
vector instructions, 455
stack, 456
discipline, 457
operations, 458
overflow, 459
pointer, 460
underflow, 461
viewing, 462
stack frame, 463, 464
stack pointer, 465
stack pointer address, 466
stack protection, 467
state, 468
state diagram, 469
state table, 470
stdio.h, 471
STDOUT_FILENO, 472
struct, 473
field, 474
overall size, 475
subsystems, 476
subtraction, 477
hexadecimal, 478
sum of minterms, 479
sum of products, 480
sum term, 481
switch, 482, 483
system call, 484, 485, 486
this pointer, 487
time constant, 488
toggle, 489
transistor
drain, 490
gate, 491
source, 492
tri-state buffer, 493
truth table, 494, 495
two’s complement, 496
computing, 497
defined, 498
two’s complement code, 499
type casting, 500
unistd.h, 501
variable
automatic, 502
static, 503
variable argument list, 504
variables
local, 505
vector, 506, 507
von Neumann bottleneck, 508
while statement, 509
write, 510, 511
x86 architecture, 512