第一章 8080/8085微处理机介绍 1
8080微处理机 2
1-1 典型的8080程式 6
机器与组合语言 6
第一章 6
1-2 一些8080指令的代号及操作码 8
8085微处理机 9
本书惯用之表达方式 10
程式之格式 12
1-3 程式列表之格式 12
8080与8085相似之处 13
8080/8085指令整理表 13
第二章 8080/8085基本指令 121
资料移动指令 122
使用读/写记忆储存资料 125
立即资料移动指令 127
2-1 把相同的值放入暂存器B、C、D和E中 128
2-2 把一个资料位组存入四个暂存器的两种方法 128
第二章 128
2-3 把地址为030 123(1853)的记忆中的资料移入D暂存器 130
2-4 把立即资料位组存入记忆中 131
简单的暂存器对指令 131
2-5 LXI H和功能相当的MVI指令 132
2-6 使用LXI B、LXI D、LXI H指令 133
输入和输出指令 135
2-8 从地址为103(43)的装置输入八位元的资料 136
2-7 送八位元的值到地址为015(0D)的装置 136
八位元逻辑与数学指令 139
逻辑指令 142
2-10 使用AND C指令遮掉四个MSB 148
2-9 遮掉ASCII字元中的四个MSB 148
2-11 把两个ASCII字元输入、遮盖、旋转及合成 150
数学指令 152
2-12 使用ADD B指令把B暂存器内的资料加入A中 153
2-13 把A和B暂存器内的资料相加的程式 154
2-14 把A和B内的资料相加并产生进位 154
2-15 本程式使两数相加且结果设置进位位元为1 155
2-16 两个16位元数的加法 156
2-17 使用ADC指令作16位元加法 157
2-18 从暂存器A中减去暂存器E中的资料 158
2-19 B暂存器减以E暂存器 158
2-22 两个16位元数的减法 159
2-20 减法中产生借位 159
2-21 小数减以大数 159
2-23 D暂存器对减以B暂存器对 160
2-24 D暂存器对减以B暂存器对,有产生借位 160
2-25 D暂存器对减以B暂存器对 161
2-27 以DCR E指令减去E暂存器中的资料 163
2-26 以INR B指令增加B暂存器内的资料 163
2-28 使用INX H指令 164
2-30 例2-29中程式的改进型 165
2-29 把记忆内的资料移入暂存器D和E 165
2-31 说明DCX H指令 166
2-32 使用HLT指令 168
分支、控制的转移、及作决定指令 169
2-33 在程式中使用NOP指令保留空间 169
2-34 跳越指令的格式 170
2-35 跳回程式的开始点 171
2-36 使用问号来结束输入程式 173
2-37 去掉除0-9及?以外的全部ASCII字元 174
2-38 先测试ASCII数字字元 176
2-39 使用旋转指令及进位旗号测试选择的位元 177
2-40 使用ANI指令和零旗号来测试A暂存器中选择的位元 178
2-41 以旋转指令测试一个字中的多个位元 180
2-42 依次测试资料位元D6、D3及D4 181
2-43 在一个字内使用ANI指令测试三个资料位元 182
2-44 等到某个资料位元变成零 183
2-45 位元D2的设置运算 184
2-46 位元清除或位元重定指令 185
结论 185
第三章 副常式与基本指令的使用 187
叫出副常式 189
第三章 192
3-1 以LXI SP指令把值放入堆叠指标中 192
时间延迟副常式 195
3-2 200毫秒的时间延迟副常式 198
3-3 30秒的时间延迟副常式 200
3-4 简化的30秒时间延迟副常式 201
3-5 使用暂存器对减一指令的0.2秒时间延迟副常式 202
3-6 叫出HAF-MIN副常式的一小时时间延迟程式 203
条件叫出与返回指令 204
3-7 印出ASCII字元的程式(记忆中不存跳行) 205
3-8 二进制对ASCII字元转换(十六进制数字)副常式 208
入/出装置同步 210
使用基本指令 210
3-9 简单的TTY输出副常式 211
3-10 在TTY上印出一个B字元 213
3-11 印出字元的弹性方式 214
3-12 把键盘字元的回音印在印字机上 215
3-13 在入/出软体中使用ANI指令,富有弹性 217
TTY入/出与字元处置 218
3-14 输入ASCII字元并存入记忆中 218
3-15 能得到资料回音的输入及保存程式 220
3-16 用问号表示资料输入完毕 221
3-17 若输入回转,则加印跳行 223
3-18 把存在记忆中的ASCII字元印出 224
3-19 印出ASCII资料(以000表示资料的结束) 225
3-20 一般用途的TTY入/出副程式 227
3-21 如何印出CR、LF、和BELL 229
TTY及终端机程式 229
3-22 TTY或CRT测试程式 230
3-23 打纸带机测试程式 232
3-24 读纸带机测试程式 233
3-25 电子锁程式 235
电子锁 235
3-26 改进的电子锁程式 238
结论 240
第四章 8080/8085的高等指令 243
暂存器对的运算 243
第四章 245
4-1 搬动一块资料 245
4-2 改进的一块资料移动程式 246
4-3 由高往低搬移重叠的阵列 248
堆叠指标暂存器 249
DAD指令 250
4-4 两个16位元的数相加 251
4-5 执行20次的DAD H指令 253
4-6 找出堆叠指标中的地址 254
4-7 把SP作加及减的运算 255
直接取和存的指令 256
4-8 把H暂存器对中的资料存到R/W记忆中 257
4-9 SHLD指令使用方法 257
4-10 执行DAD SP指令之前先使用SHLD指令 258
4-11 以LHLD指令把资料放入暂存器对H中 259
4-12 测验您对LHLD指令了解程度 259
4-13 找出SP中的地址而不破坏暂存器对H中的资料 260
4-14 使用LDA指令 261
4-15 使用STA指令 261
4-16 判断记忆中是否存有215(8D) 262
使用堆叠存放资料、地址、与状态讯息 262
4-17 使用堆叠来存暂存器中的资料之正确方法 265
4-18 把资料压入及弹出堆叠 267
4-19 何时压入及弹出 269
重始指令——单位组叫出指令 270
4-20 不应该这样子叫出副常式 270
4-21 使用重始指令叫出副常式 272
4-22 使用叫出指令取代重始指令 273
4-23 使用重始指令叫出长的副常式 273
使用H暂存器对 274
4-25 不用XCHG指令,只用LXI指令 275
4-26 与XCHG指令功能相当的方法 275
4-24 使用XCHG指令 275
4-27 把暂存器D存入R/W记忆中 276
4-28 把暂存器对D存入R/W记忆中的改进方法 276
4-29 使用LHLD指令,把记忆中的资料放入暂存器对D中 277
4-30 使用MOV指令把记忆中的资料放入暂存器对D中 277
4-31 把暂存器对D和H存入记忆中 278
4-32 把暂存器对B中的资料存入记忆中 278
4-33 B暂存器对与D或H暂存器对互换 279
4-34 资料阵列移动程式 280
4-35 使用LHLD指令取得地址和数目 281
4-36 使用PCHL指令 282
4-37 使用XTHL指令 283
4-38 使用SPHL指令 284
4-39 存於ROM中的程式能够改变SP 285
4-40 简单的CMA指令 286
其他的A暂存器(累积器)指令 286
4-41 另一个使用CMA指令的程式 287
进位指令 288
4-42 产生2补数 288
4-43 使用STC指令表达错误情况 289
结论 290
4-44 清除进元 290
整数加法 293
第五章 数学常式 293
第五章 295
5-1 32位元的加法副常式 295
5-2 多位组加法副常式 297
5-4 从例5-2中的副常式消除ADD M指令 299
5-3 暂存器D中既是数字来源的地址也是目的地的地址 299
5-5 三个记忆地址的多位组加法副常式 301
整数减法 303
5-6 多位组减法副常式 304
5-7 多位组减法副常式 305
整数乘法 308
5-8 以连续加法执行乘法 308
5-9 十进制及二进制乘法,首先检查乘数的MSB 311
5-10 八位元乘以八位元之乘法副常式 311
5-11 在八位元乘以八位元的乘法副常式中使用DAD H指令 315
5-12 以XCHG和DAD H指令移动暂存器对D中的数 316
5-13 16位元乘以16位元的乘法副常式(32位元的积) 318
整数除法 320
5-14 十进制和二进制除法 322
5-15 使用减一及检查方式把11010010除以101 323
5-16 八位元除以八位元的除法副常式 324
5-17 改进过的八位元除以八位元除法副常式 326
5-18 DIV 88A副常式(例5-17)的一个不恰当的结束方式 327
5-19 16位元除以16位元的除法副常式 328
BCD数学 334
5-20 把两个合起来的BCD数相加 335
5-21 正确的BCD加法常式 336
5-22 把暂存器C和B中的BCD数相加 339
5-23 暂存器B中的BCD数减掉暂存器C中的BCD数 340
5-24 把暂存器对B与D中的BCD数相加 340
四位数BCD运算 340
5-25 算出暂存器对B中的BCD数之10补数 342
5-26 把暂存器对B中的BCD数取补数,然後与暂存器对D中的BCD数相加 343
5-27 把存在记忆中的BCD数取10补数 344
5-28 把存在记忆中的两个BCD数相加 346
浮点数学运算 347
特殊函数 354
第六章 数基底转换 357
三位数、ASCII基底、八进制对二进制转换 357
第六章 359
6-1 输入并存入A暂存器中的两个MSB位元中 359
6-2 由ASCⅡ码的八进制转换成二进制的副常式 360
6-3 修改过的以ASCII为基底的八进制对二进制转换副常式 361
八位元、二进制对ASCII基底的八进制转换 363
6-4 二进制对以ASCⅡ基底、八进制数的转换副常式 364
6-5 更简化的BCDOUT副常式 366
6-6 使用回路、二进制对ASCII基底、八进制数转换副常式 367
6-7 二进制数转换成ASCII基底的八进制字元,没有回路及有回路的方式比较 368
二位数、ASCII基底、十六进制对二进制转换 369
6-8 最短的二进制对ASCII基底的八进制数的转换副常式 369
6-9 ASCII为基底、十六进制对二进制转换副常式 371
八位元、二进制对ASCII基底的十六进制转换 375
6-10 二进制对ASCII基底、十六进制的转换副常式 375
6-11 较长的二进制对ASCII基底的十六进制转换副常式 377
6-12 最精简的二进制对ASCII基底的十六进制数转换副常式 378
三位数、以ASCII为基底,十进制对二进制转换 379
6-13 ASCII为基底、十进制对二进制转换副常式 380
6-14 把暂存器C中的数乘以10 382
6-15 倍准、ASCII基底、十进制对二进制转换副常式的一部份 384
6-16 16位元、ASCII基底、十进制对二进制转换副常式 387
八位元、二进制对ASCII基底的十进制转换 389
6-17 八位元、二进制对十进制的转换副常式 390
6-18 印出八位元、二进制对十进制转换结果的副常式 392
6-19 简化BINDEC和DECPNT副常式 393
十六位元、二进制对ASCII基底的十进制转换 394
6-20 16位元、二进制对ASCII基底的十进制转换副常式 394
6-21 DPBDEC副常式(例6-20)中印字机的程式 398
是否需要转换的问题 399
6-22 使用暂存器对H做车辆计数的程式 400
6-23 车辆计数程式 401
6-24 把存在R/W记忆中、ASCII基底的车辆数印出 404
在计数器程式和副常式中使用DAA指令 405
6-25 使用DAA指令的BCD计数器(0到9999) 405
6-26 把BCD资料字拆开成两位数的副常式 407
去掉前面的零 408
6-27 去掉前面的零的副常式 408
结论 410
第七章 微电脑输入/出 413
入/出资料移转——汇流控制 417
8080与简单的入/出装置 418
第七章 419
7-1 二进制计数及显示程式 419
7-2 较慢的二进制计数及显示 420
7-3 微电脑输入/输出程式 422
7-4 简单的输入、加法、和输出程式 422
8080与键盘 423
使用硬体编码器的键盘所需之软体与硬体 423
7-5 简单的键盘输入程式 426
7-6 另一个简单的键盘输入程式 426
7-7 最简单的键盘输入程式 427
7-8 把键码输入微电脑中,并且存入记忆中 428
7-9 TTY或CRT输入副常式 429
7-10 等待键放开後才返回 430
7-11 利用时间延迟副常式作键闭合的反跳动 431
7-12 缩短的键盘输入和反跳动副常式 433
软体驱动、多工(扫描)式键盘 435
7-13 4×4矩阵键盘扫描副常式 437
7-14 5×5矩阵键盘扫描副常式 441
7-15 具有反跳动功能的4×4键盘扫描副常式 442
ASCII基底式键盘与8080之介面 445
8080和LED显示器 447
7-16 感应ASCII键盘并输入键码的软体 447
7-17 如何把39输出到七段式LED显示器 450
7-18 在两个七段式显示器上显示计数的数目 451
7-19 10位数LED显示器软体 452
7-20 多工式10位数七段式显示器软体 455
7-21 具有使亮度均匀功能的10位数多工式显示器程式 458
7-22 首先显示最高位数的程式 459
记忆对映入/出 462
具有硬体编码器的记忆对映入/出键盘 465
7-23 等待,然後读取键码(记忆对映入/出) 466
记忆对映入/出、多工(扫描)式键盘 467
7-24 累积器入/出和记忆对映入/出副常式的比较 468
7-25 记忆对映入/出、4×4矩阵键盘扫描副常式 469
记忆对映入/出LED显示器 471
7-26 记忆对映入/出LED显示器的计数程式 471
7-27 记忆对映入/出10位数LED显示器之软体 472
7-28 记忆对映入/出10位数LED显示器以回路方式执行 473
7-29 记忆对映入/出、多工式10位数7段式显示器程式(具有使亮度均匀的功能) 475
记忆对映入/出10位数多工式显示器 475
结论 476
名词对照表 478