The Art of Assembly Language

I

IA-64, Intel, 255

IDE (Integrated Disk Electronics) interface, 370

IDE/ATA interface, 372

identifier, 318

identity element, 193

IEEE

floating-point formats, 71

rounding, 84

illegal opcodes, 278

imperative programming languages, 5

implementation

counters, 223

FAT, 378

pointer, 163

registers, 222

implied bit, 72

indexed addressing mode, 159, 166

scaled, 160, 284-85

short displacements for, 159

indexed addressing mode (Y86), 270-271

indexes, bounds checking, 171

indexes into an array, 171

indirect addressing mode, 158, 271

indirect addressing mode (Y86), 270

industry standard architecture (ISA), 338

inexact result, 80

infinity, 79

inhibition, 196

initializers, 170

input, 329

input ports, 330

input under USB, audio, 395

input/output. S e e I/O

inserting

data into bit fields, 62

field into packed structure, 63

wait state into memory read operation, 153

instability, flip-flop circuit, 221

instruction, 219, 274, 275, 276, 277, 288, 289, 290

80 —86 assembly language bitwise, 48

add , 232, 274

alternate encodings for, 292

assigning opcodes to, 266

cache, 247

choosing, 266

comparison, 266

conditional jump, 230, 266

control transfer, 269

decoding, 217

design goals, 261

encoding, 274

80 —86, 280

direction (D) bit in 80 —86, 282

jump, 273

reg field in, 80 —86, 282

Y86, 271

execution

overlapping, 241

in a pipeline, 244, 245

grouping, 267

input/output, 266

jnz , 230, 234

jump, 277

legacy support, 261

loop , 230, 234

mov , 230, 268, 276

not , 276

overlapping, 241

in parallel, superscalar, 251

pipelining, 243

program performance, 243

read/modify/write, 334

size , 264

reducing, 226

types, 266

usage frequency, 267

variable-length, 264

Y86, 268

zero-operand, 278

instruction (opcode) format for simple CPU, 218

instruction (Y86), 268

cmp , 269, 276

get , 270

halt , 270

ja , 269

jae , 269

jb , 269

jbe , 269

je , 269

jmp , 269

jne , 269

jump , 277

mov , 268, 276

not , 269, 276

or , 269, 276

put , 270

sub , 269, 276

instruction pointer register, 228

instruction set, 226

architecture, 259-60

using prefix byte to extend, 279

instruments, 1,400

integer

64-bit, 23

adding to a pointer, 165

converting decimal digit to, 20

converting to characters , 20

signed, 24

subtracting from a pointer, 167

type coercion, 81

unsigned, 24

integrated disk electronics (IDE) interface, 370

Intel IA-64, 255

interface

32-bit processor memory, 142

AGP bus, 341

application binary (ABI), 184

AT attachment with packet, 373

Human Interface Devices (HID), 396

IDE/ATA, 372

IDE, 370

MIDI, 402

peripheral connection (PCI), 338

SATA (serial ATA), 374

SCSI Parallel (SPI), 369

Small Computer System (SCSI), 367

interleaving sectors, 356-57

internal fragmentation, 327, 376

internal numeric representation, 10, 21

interrupt

lines, 136

mechanisms, 345

service routine, 345

transfers, USB, 394

transmission packets, USB, 394

interrupts, 344

and polled I/O, 344

invalid operation, 79

inverse element, 193

inverse via exclusive-or, 47

inverted page tables, 312

inverter built from a NAND gate, 213

inverting bits, 48

I/O, 134, 329

address bus, 137

address space, 335

asynchronous, 387

cache, 335

device, 14

high-speed, 337

low-speed, 337

medium speed, 337

timeout periods, 343

to disk files, 388

formatted, 388

handshaking, 342

high-level, 329

improving file performance, 386

interrupts and polled, 344

locations, 135

mechanisms, 334

memory-mapped, 334-35

polled, 344

port, 330

classification, 330

dual, 332

time-outs, 343

programmed, 336

protected mode, 345

speed hierarchy, 337

synchronous, 387

type, 388

ISA (instruction set architecture), 260

ISA bus, 338

connection, 339

performance, 340

isochronous transfers USB, 395

ISR (interrupt service routine), 345

Категории