《逻辑设计用Z80程序设计》求取 ⇩

第一章绪言1

1.1 阅读本书的预备知识1

1.2 懂得汇编语言2

第二章汇编语言与数字逻辑3

2.1 设计周期3

2.2 数字逻辑的模拟7

2.3信号反相器的微型计算机模拟8

2.3.1 微型计算机中的事件序列8

2.3.2 实现变换作用10

2.3.3 确定数据源和目标11

2.3.4 事件的定时17

2.4 缓冲器、放大器和信号的负载20

2.5 7404/05/06六反相器的微型计算机模拟29

2.67408/09四双输入正与门的微型计算机模拟31

2.6.1 双输入的功能32

2.77411三三输入正与门的微型计算机模拟34

2.7.1 三输入的功能35

2.7.2 尽量减少CPU寄存器的存取次数38

2.7.3 存储器的利用和执行速度的比较43

2.87474双D型可预置和清除的正沿触发触发器的微型计算机模拟45

2.8.1 触发器的数字逻辑说明46

2.8.2 触发器的汇语言模拟50

2.8.3 一般触发器微型计算机模拟51

2.9实时器件的微型计算机模拟52

2.9.1 555单稳多谐振荡器53

2.9.2 74121单稳多谐振荡器54

2.9.3 74107双装带清除的J-K主从触发器58

2.9.4 实际时间的微型计算机模拟60

2.9.5 微型计算机定时用的指令循环61

2.9.6 数字逻辑模拟的范围67

2.9.7 同外部单脉冲发生器的连接67

2.9.8 时间输出和中断70

2.9.9 同可编程序的时间的连接70

第三章直接的数字逻辑模拟72

3.1 奎米打印机是怎样工作的73

3.2输入和输出信号80

3.2.1 输入/输出器件81

3.2.2 Z80并行I/O接口PIO81

3.2.3 输入信号89

3.2.4 输入信号小结100

3.2.5 输出信号100

3.3面向数字逻辑的模拟102

3.3.1 逻辑概观102

3.3.2 FFAw触发器104

3.3.3 触发器FFAw的模拟106

3.3.4 触发器FFBw118

3.3.5 触发器FFB的模拟121

3.3.6 触发器FFC129

3.3.7 触发器FFC的模拟131

3.3.8 START RIBBON MOTION(色带启动)脉冲的模拟135

3.3.9 触发器FFD137

3.3.10 触发器FFD的模拟137

3.3.11 触发器FFE141

3.3.12 PW SETTLING(打印字轮定位)的单脉冲发生器144

3.3.13 PW SETTLING单脉冲发生器的模拟145

3.3.14 触发器FFF146

3.3.15 触发器FFF的模拟148

3.3.16 555多谐振荡器152

3.3.17 多谐振荡器555的模拟153

3.3.18 PW RELEASE ENABLE(字轮解脱可用)触发器163

3.3.19 PW RELEASE ENABLE(字轮解脱可用)触发器的模拟164

3.3.20 PW READY ENABLE单脉冲发生器166

3.4 关于模拟的总结170

第四章简单程序176

4.1从不同的角度看问题176

4.1.1 汇编语言的定时与数字逻辑的定时176

4.1.2 输入和输出信号177

4.2微型计算机的器件结构180

4.2.1 通常的设计概念180

4.2.2 Z80并行输入/输出接口(PIO)182

4.2.3 ROM和RAM存储器184

4.2.4 系统的初始化186

4.2.5 程序流程图186

4.2.6 程序的逻辑错误208

4.2.7 复位和初始化213

4.3 程序的综合215

第五章程序设计者的看法220

5.1简单程序设计的效率220

5.1.1 高效率查表220

5.2子程序227

5.2.1 子程序的调用228

5.2.2 子程序的返回234

5.2.3 如果使用子程序235

5.2.4 子程序的有条件返回237

5.2.5 子程序的多路返回240

5.2.6 子程序的有条件调用245

5.3247

5.3.1 什么叫宏?248

5.3.2 带参量的宏250

5.4中断251

5.4.1 中断的硬件考虑252

5.4.2 多级中断266

5.4.3 中断的合理性269

第六章Z80指令系统271

6.1基本规定和说明271

6.1.1 缩写符号271

6.1.2 状态274

6.1.3 指令记忆符275

6.1.4 指令目标码275

6.1.5 指令的执行时间和代码275

6.2指令细述306

6.2.1 ADC A,data——累加器加立即数及进位306

6.2.2ADC A,reg——累加器加寄存器及进位307

6.2.3 ADC A,(HL)——累加器加存储器及进位 ADC A,(IS+disp) ADC A,(IY+disp)308

6.2.4 ADC HL,rp——H和L加寄存器对及进位309

6.2.5 ADD A,data——累加器加立即数310

6.2.6ADD A,reg——累加器加寄存器311

6.2.7 ADD A,(HL)——累加器加存储器 ADD A,(IX+disp) ADD A,(IY+disp)313

6.2.8 ADD HL,rp——H和L加寄存器对314

6.2.9 ADD xy,rp——变址寄存器加寄存器对315

6.2.10 AND data——累加器同立即数逻辑与316

6.2.11AND reg——累加器同寄存器逻辑与317

6.2.12 AND(HL)——累加器同存储器逻辑与AND(IX+disp) AND(IY+disp)318

6.2.13BIT b,reg——检测寄存器reg中的二进位b319

6.2.14 BIT b,(HL)——检测所指存储单元中的二进位b BIT b,(IX+disp) BIT b,(IY+disp)320

6.2.15 CALL label——调用由操作码指明的子程序322

6.2.16 CALL condition,label——若条件满足,调用由操作码指明的子程序323

6.2.17 CCF——进位标志取反324

6.2.18 CP data——累加器的内容与立即数比较324

6.2.19CP reg——累加器与寄存器比较325

6.2.20 CP(HL)——累加器与存储器比较 CP(IX+disp) CP(IY+disp)326

6.2.21 CPD——累加器与存储器比较.地址和字节计数器各减1328

6.2.22 CPDR——累加器与存储器比较.地址和字节计数器各减1.连续进行到条件相符或字节计数器为0329

6.2.23 CPI——累加器与存储器比较.字节计数器减1.地址加1330

6.2.24 CPIR——累加器与寄存器比较.字节计数器减1.地址加1.连续进行到条件相符或字节计数器为0331

6.2.25 CPL——累加器取反332

6.2.26 DAA——累加器的十进制校正332

6.2.27 DEC reg——寄存器的内容减1333

6.2.28DEC rp——所指寄存器对的内容减1 DEC IX DEC IY334

6.2.29 DEC(HL)——存储单元的内容减1 DEC(IX+disp) DEC(IY+disp)336

6.2.30 DI——封锁中断337

6.2.31 DJNZ disp——若寄存器B的内容非0,则相对于程序计数器的当前内容进行跳转338

6.2.32 EI——开放中断338

6.2.33 EX AF,AF′——程序的状态和替换程序的状态交换340

6.2.34 EX DE,HL——DE和HL的内容交换341

6.2.35 EX(SP),HL——栈顶和寄存器的内容交换 EX(SP),IX EX(SP),IY342

6.2.36 EXX——寄存器对和替换寄存器对交换343

6.2.37 HALT——暂停344

6.2.38 IM 0——0式中断344

6.2.39 IM 1——1式中断345

6.2.40 IM 2——2式中断345

6.2.41 IN A,(port)——输入到累加器345

6.2.42 INC reg——寄存器的内容加1346

6.2.43INC rp——所指寄存器的内容加1 INC IX INC IY347

6.2.44 INC(HL)——存储器的内容加1 IN(IX+disp) INC(IY+disp)348

6.2.45 IND——输入到存储器,指针减1349

6.2.46 INDR——输入到存储器,指针减1,连续进行到字节计数器为0350

6.2.47 INI——输入到存储器,指针加1351

6.2.48 INIR——输入到存储器,指针加1.连续进行到字节计数器为0351

6.2.49 IN reg,(C)——输入到寄存器352

6.2.50 JP label——跳转到由操作码标识的指令353

6.2.51 JP condition,label——若条件满足,则跳转到由操作码标识的地址354

6.2.52 JP(HL)——跳转到由16位寄存器内容指明的地址 JP(IX) JP(IY)355

6.2.53 JR C,disp——若进位为1,相对于程序计数器的内容进行跳转356

6.2.54 JR disp——相对于程序计数器的内容进行跳转357

6.2.55 JR NC,disp——若进位标志为0,相对于程序计数器的内容进行跳转358

6.2.56 JR NZ,disp——若零标志是0,相对于程序计数器的内容进行跳转358

6.2.57 JR Z,disp——若零标志是1,相对于程序计数器的内容进行跳转359

6.2.58 LD A,IV——中断向量或更新寄存器的内容移入累加器 LD A,R359

6.2.59 LD A,(addr)——用直接寻址从存储单元输入累加器360

6.2.60 LD A,(rp)——由按寄存器对内容编址的存储单元输入累加器361

6.2.61 LD dst,src——源寄存器的内容移入目标寄存器362

6.2.62 LD HL,(addr)——用直接寻址从存储单元输入到寄存器对或变址寄存器 LD rp,(addr) LD IX,(addr) LD IY,(addr)363

6.2.63 LD IV,A——从累加器输入到中断向量或更新寄存器 LD R,A365

6.2.64 LD reg,data——立即数输入寄存器366

6.2.65LD rp,data——16位的立即数输入寄存器 LD IX,data LD IY,data367

6.2.66 LD reg,(HL)——从存储器输入寄存器 LD reg,(IX+disp) LD reg,(IY+disp)368

6.2.67 LD SP,HL——HL或变址寄存器的内容移入堆栈指示器(指针) LD SP,IX LD SP,IY370

6.2.68 LD(addr),A——累加器的内容用直接寻址存入存储器371

6.2.69LD(addr),HL——寄存器对或变址寄存器的内容用直接寻址存入存储器 LD(addr),rp LD(addr),xy372

6.2.70LD(HL),data——立即数输入存储器 LD(IX+disp) LD(IY+disp)374

6.2.71 LD(HL),reg——从寄存器输入存储器 LD(IX+disp),reg LD(IY+disp),reg375

6.2.72 LD(rp),A——从累加器输入到由寄存器对编址的存储单元376

6.2.73 LDD——存储单元之间传送数据.目标和源地址都减1377

6.2.74 LDDR——存储单元之间传送数据,连续进行到字节计数器为0.目标和源地址都减1378

6.2.75 LDI——存储单元之间传送数据.目标和源地址都加1379

6.2.76 LDIR——存储单元之间传送数据,直至字节计数器为0.目标和源地址都加1380

6.2.77 NEG——累加器的内容取补381

6.2.78 NOP——空操作381

6.2.79 OR data——累加器同立即数逻辑或382

6.2.80OR reg——累加器同寄存器逻辑或383

6.2.81 OR(HL)——累加器同存储器逻辑或 OR(IX+disp) OR(IY+disp)384

6.2.82 OUT(C),reg——从寄存器输出385

6.2.83 OUTD——从存储器输出,地址减1386

6.2.84 OTDR——从存储器输出,地址减1.连续进行到寄存器B=0387

6.2.85 OUTI——从存储器输出,地址加1388

6.2.86 OTIR——从存储器输出,地址加1.连续进行到寄存器B=0388

6.2.87 OUT(port),A——从累加器输出389

6.2.88 POP rp——从栈顶读出 POP IX POP IY390

6.2.89 PUSH rp——向栈顶写入 PUSH IX PUSH IY391

6.2.90RES b,reg——存储单元的指定位置0393

6.2.91 RES b,(HL)——存储单元的指定位置0 RES b,(IX+disp) RES b,(IY+disp)394

6.2.92 RET——从子程序返回395

6.2.93 RET cond——若条件满足,从子程序返回396

6.2.94 RETI——从中断返回397

6.2.95 RETN——从不可屏蔽的中断返回398

6.2.96RL reg——寄存器的内容连同进位循环左移398

6.2.97 RL(HL)——存储单元的内容连同进位循环左移RL(IX+disp) RL(IY+disp)399

6.2.98 RLA——累加器的内容连同进位循环左移401

6.2.99RLC reg——寄存器的内容左送进位位且循环左移401

6.2.100 RLC(HL)——存储单元的内容左送进位位且循环左移 RLC(IX+disp) RLC(IY+disp)402

6.2.101 RLCA——累加器的内容左送进位位且循环左移404

6.2.102 RLD——累加器和存储单元之间循环左移二-十进制数一位405

6.2.103RR reg——寄存器的内容连同进位循环右移406

6.2.104 RR(HL)——存储单元的内容连同进位循环右移 RR(IX+disp) RR(IY+disp)407

6.2.105 RRA——累加器的内容连同进位循环右移408

6.2.106RRC reg——寄存器的内容右送进位位且循环右移409

6.2.107 RRC(HL)——存储单元的内容右送进位位且循环右移 RRC(IX+disp) RRC(IY+disp)410

6.2.108 RRC A——累加器的内容右送进位位且循环右移411

6.2.109 RRD——累加器和存储单元之间循环右移二-十进制数一位412

6.2.110 RST——重新启动413

6.2.111 SBC A,data——累加器减立即数及借位414

6.2.112SBC A,reg——累加器减寄存器及借位415

6.2.113 SBC A,(HL)——累加器减存储单元及借位 SBC A,(IX+disp) SBC A,(IY+disp)416

6.2.114 SBC HL,rp——H和L减寄存器对的内容及借位418

6.2.115 SCF——进位标志置1419

6.2.116SET b,reg——所指的寄存器某位置1419

6.2.117 SET b,(HL)——所指的存储单元某位置1 SET b,(IX+disp) SET b,(IY+disp)420

6.2.118SLA reg——寄存器内容算术左移422

6.2.119 SLA(HL)——存储单元内容算术左移 SLA(IX+disp) SLA(IY+disp)423

6.2.120SRA reg——寄存器内容算术右移424

6.2.121 SRA(HL)——存储单元内容算术右移 SRA(IX+disp) SRA(IY+disp)425

6.2.122SRL reg——寄存器内容逻辑右移427

6.2.123 SRL(HL)——存储单元内容逻辑右移 SRL(IX+disp) SRL(IY+disp)428

6.2.124 SUB data——累加器减立即数429

6.2.125SUB reg——累加器减寄存器430

6.2.126 SUB(HL)——累加器减存储单元 SUB(IX+disp) SUB(IY+disp)431

6.2.127 XOR data——累加器同立即数异或432

6.2.128XOR reg——累加器同寄存器异或433

6.2.129 XOR(HL)——累加器与存储器异或 XOR(IX+disp) XOR(IY+disp)434

第七章公用子程序436

7.1存储器寻址436

7.1.1 间接寻址437

7.1.2 间接后变址的寻址438

7.2数据传送438

7.2.1 传送简单的数据块438

7.2.2 多重表的查找440

7.2.3 数据分类442

7.3算术444

7.3.1 二进制加法444

7.3.2 二进制减法448

7.3.3 十进制加法448

7.3.4 十进制减法449

7.4乘法和除法449

7.4.1 8位二进制乘法449

7.4.2 一个8位的二进制乘法程序453

7.4.3 16位的二进制乘法455

7.4.4 二进制除法456

7.5程序执行的顺序逻辑458

7.5.1 转移表458

1986《逻辑设计用Z80程序设计》由于是年代较久的资料都绝版了,几乎不可能购买到实物。如果大家为了学习确实需要,可向博主求助其电子版PDF文件(由(美)奥斯本(Osborne,A.)等著 1986 北京:科学出版社 出版的版本) 。对合法合规的求助,我会当即受理并将下载地址发送给你。