目录 1
第一章 引言 1
1-1 这本书假定你已知道了 2
1-2 了解汇编语言 2
1-3 这本书是怎样排印的 3
第二章 汇编语言和数字逻辑 4
2-1 设计周期 4
2-2 模拟数字逻辑 8
2-3 用微型计算机模拟信号反相器 9
2-3-1 微型计算机事件序列 9
2-3-3 确定数据的源和目的地 11
2-3-2 传递函数的实现 11
2-3-4 事件的定时 18
2-4 缓冲器、放大器和信号负载 21
2-5 用微型计算机模拟7404/05/06/07六反相器 30
2-6 用微型计算机模拟7408/09二输入、 31
四正“与”门 31
2-6-1 二输入功能 32
2-7 用微型计算机模拟7411三输入、三正“与”门 34
2-7-1 三输入功能 35
2-7-2 尽可能减少对CPU寄存器的存取 38
2-7-3 存储器利用率和执行速度的比较 41
正跳沿触发双D触发器 42
2-8-1 触发器的数字逻辑描述 42
2-8-2 用汇编语言对触发器的一种模拟 45
2-8-3 用微型计算机模拟一般触发器 47
2-9 用微型计算机模拟实时器件 47
2-9-1 555单稳多谐振荡器 48
2-9-2 74121单稳多谐振荡器 49
2-9-3 74107带清零端的双J-K主从触发器 52
2-9-4 用微型计算机模拟实时 54
2-9-5 微型计算机定时指令循环 54
2-9-6 对于数字逻辑模拟的局限性 60
2-9-7 与外部单冲触发电路的接口 60
2-9-8 逾时和中断 63
第三章 数字逻辑的直接模拟 64
3-1 QUME打印机是如何工作的 65
3-2 输入/输出信号 71
3-2-1 输入/输出器件 71
3-2-2 8255可编程序外部接口 72
3-2-3 8212八位输入/输出口 76
3-2-4 输入信号 78
3-2-5 返回选通(RETURN STROBE) 78
3-2-6 阻止“打印锤启动”释放(PFL REL) 80
3-2-7 色带准备提升(RIB LIFT RDY) 80
3-2-8 印字轮选通(PW STROBE) 81
3-2-9 “启动色带移动脉冲”(FFA) 82
3-2-10 复位(RESET) 83
3-2-11 输纸轴释放(PFR REL) 84
3-2-12 输纸托架释放(CA REL) 84
3-2-13 FFI 85
3-2-14 色带用完(EOR DET) 86
3-2-15 允许打印锤触发器(HAMMER ENABLE FF) 89
3-2-16 时钟 89
3-2-17 H1-H6 90
3-2-18 输入信号小结 90
3-2-19 输出信号 91
3-3-1 对于逻辑的简要说明 92
3-3 面向数字逻辑电路的模拟 92
3-3-2 触发器FFAW 94
3-3-3 触发器FFAW的模拟 97
3-3-4 触发器FFBW 107
3-3-5 触发器FFB的模拟 110
3-3-6 触发器FFC 121
3-3-7 触发器FFC的模拟 124
3-3-8 “启动色带移动”脉冲的模拟 128
3-3-9 触发器FFD 132
3-3-10 触发器FFD的模拟 132
3-3-11 触发器FFE 137
3-3-12 “稳定印字轮”单冲触发器 141
3-3-13 “稳定印字轮”单冲触发器的模拟 142
3-3-14 触发器FFF 144
3-3-15 触发器FFF的模拟 146
3-3-16 555多谐振荡器 151
3-3-17 555多谐振荡器的模拟 152
3-3-18 “允许印字轮释放”触发器 165
3-3-19 “允许印字轮释放”触发器的模拟 165
3-3-20 “允许印字轮准备”单冲触发器的模拟 169
3-4 关于模拟的小结 175
第四章 一个简单程序 185
4-1 汇编语言与数字逻辑在定时关系上的比较 185
4-2 输入和输出信号 186
4-3 微型计算机器件的组态 188
4-3-1 一般的设计概念 189
4-3-2 8255可编程序外部接口 190
4-3-3 系统初始化 193
4-3-4 只读存储器和随机存取存储器 193
4-3-5 程序流程图 195
4-3-6 程序逻辑错误 219
4-3-7 复位和初始化 226
4-4 程序小结 227
5-1 简单程序设计的效率 234
5-1-1 高效率的查表方法 234
第五章 程序人员的看法 234
5-2 硬件的利用 241
5-2-1 硬件专用指令 242
5-2-2 硬件特性的直接用途 244
5-3 子程序 246
5-3-1 子程序调用 249
5-3-2 子程序的返回 252
5-3-3 什么时候使用子程序 256
5-3-4 子程序的条件返回 257
5-3-5 多重子程序返回 262
5-3-6 子程序的条件调用 268
5-4 宏指令 270
5-4-1 什么是宏指令? 271
5-4-2 具有参数的宏指令 272
5-5 中断 275
5-5-1 中断硬件的考虑 276
5-5-2 中断服务程序 279
5-5-3 对于中断的评价 287
5-5-4 多级中断 289
第六章 8080/9080指令系统 292
6-1 缩写符号 292
表6-1 8080/9080微型计算机指令系统摘要 293
6-2 状态 303
6-2 指令结果代码和执行周期摘要 304
6-5 ACI——立即数和累加器进行带进位的加法 305
6-4 指令的执行时间和代码 305
6-3 指令的结果代码 305
6-6 ADC——寄存器或存储器和累加器进行带进 306
位的加法 306
6-7 ADD——寄存器或存储器和累加器相加 308
6-8 ADI——立即数和累加器相加 309
6-9 ANA——寄存器或存储器和累加器相“与” 310
6-10 ANI——立即数和累加器相“与” 312
6-11 CALL——调用由操作数标示的子程序 313
6-12 CC——调用由操作数标示的子程序,但仅 314
当进位位状态等于1时才调用 314
6-13 CM——调用由操作数标示的子程序,但仅 315
当符号状态位等于1时才调用 315
6-14 CMA——累加器内容取反 315
6-15 CMC——进位位状态取反 316
6-16 CMP——寄存器或存储器和累加器相比较 317
6-17 CNC——调用由操作数标示的子程序,但 319
仅当进位位状态等于0时才调用 319
6-19 CP——调用由操作数标示的子程序,但仅 320
仅当零状态等于0时才调用 320
当符号位状态等于0时才调用 320
6-18 CNZ——调用由操作数标示的子程序,但 320
6-20 CPE——调用由操作数标示的子程序,但仅 321
当奇偶位状态等于1时才调用 321
6-21 CPI——立即数与累加器内容相比较 322
6-23 CZ——调用由操作数标示的子程序,但仅 323
当奇偶位状态等于0时才调用 323
当零状态位等于1时才调用 323
6-22 CPO——调用由操作数标示的子程序,但仅 323
6-24 DAA——十进制调整累加器 324
6-25 DAD——寄存器对和H,L相加 325
6-26 DCR——寄存器或存储器的内容减1 326
6-27 DCX——寄存器对减1 328
6-28 DI——禁止中断(关中断) 330
6-29 EI——允许中断(开中断) 330
6-30 HLT——暂停 333
6-31 IN——输入累加器 334
6-32 INR——寄存器或存储器内容增1 334
6-33 INX——寄存器对增1 336
6-34 JC——若有进位,转移 338
6-35 JM——若为负,转移 338
6-36 JMP——转移到由操作数标示的指令 339
6-37 JNC——若无进位,转移 340
6-38 JNZ——若不为零,转移 340
6-39 JP——若为正,转移 341
6-40 JPE——若奇偶位状态为偶,转移 341
6-41 JPO——若奇偶位状态为奇,转移 342
6-42 JZ——若结果为零,转移 342
6-43 LDA——将直接寻址的存储单元内容送累加器 343
6-44 LDAX——由寄存器对寻址的存储单元内容 344
送累加器 344
6-45 LHLD——将直接寻址的存储单元内容送入 345
寄存器H和L 345
6-46 LXI——将16位立即数送入寄存器对 347
6-47 MOV——传送数据 347
6-48 MVI——立即数据送入寄存器或存储器 350
6-49 NOP——不操作 352
6-50 ORA——寄存器或存储器和累加器相“或” 353
6-51 ORI——立即数和累加器内容相“或” 355
6-52 OUT——从累加器输出 356
6-53 PCHL——转移到由寄存器HL所指定的地址 357
6-54 POP——从栈顶读出 358
6-55 PUSH——写入栈顶 359
6-56 RAL——累加器内容连同进位位循环左移 360
6-57 RAR——累加器内容连同进位位循环右移 362
6-58 RC——若进位位状态等于1,返回 363
6-59 RET——从子程序返回 364
6-60 RLC——累加器循环左移 365
6-61 RM——若符号位状态等于1,返回 366
6-62 RNC——若进位位状态等于0,返回 366
6-63 RNZ——若零状态位等于0,返回 367
6-64 RP——若符号状态位等于0,返回 368
6-66 RPO——若奇偶状态位等于0,返回 369
6-65 RPE——若奇偶状态位等于1,返回 369
6-67 RRC——累加器循环右移 370
6-68 RST——重新启动 371
6-69 RZ——若零状态位等于1,返回 372
6-70 SBB——累加器内容与寄存器或存储器内容 373
进行带借位减法 373
6-71 SBI——累加器与立即数据进行带借位减法 375
6-72 SHLD——直接存入H和L寄存器 376
6-74 STA——累加器内容存入采用直接寻址的 377
存储单元 377
6-73 SPHL——将寄存器H和L的内容送入栈指示器 377
6-75 STAX——累加器内容存入由寄存器对指定 379
的存储单元 379
6-77 SUB——从累加器中减去寄存器或存储器 380
的内容 380
6-76 STC——置进位位状态 380
6-78 SUI——从累加器减去立即数据 382
6-79 XCHG——交换寄存器DE和HL的内容 383
6-80 XRA——寄存器或存储器和累加器相“异” 384
6-81 XRI——立即数据和累加器相“异” 386
6-82 XTHL——栈顶和H,L交换 387
第七章 一些常用的子程序 389
7-1 存储器寻址 389
7-1-1 自动增1和自动减1 390
7-1-2 变址寻址 393
7-1-3 间接寻址 394
7-2 数据传送 395
7-2-1 传送简单的数据块 395
7-1-4 变址后间接寻址 395
7-2-2 多重查表 397
7-2-3 数据分类 399
7-3 运算 402
7-3-1 二进制加法 403
7-3-2 二进制减法 406
7-3-3 十进制加法 406
7-3-4 十进制减法 407
7-4 乘法和除法 409
7-4-1 八位二进制乘法 409
7-4-2 八位二进制除法 413
7-4-3 十六位二进制乘法 415
7-4-4 二进制除法 416
7-5 程序执行顺序逻辑转移表 418
附录 421
A 标准字符代码 421
2-8 用微型计算机模拟可预置和可清除的 7474