第一部分 Z80汇编语言程序设计概论第一章 Z80指令系统1—1 指令格式 1
1—2 寻址方式 2
1—3 指令系统 6
第二章 Z80汇编语言程序设计 25
2—1 机器语言和汇编语言 25
2—2 汇编语言的结构 26
2—3 伪指令 27
2—4 汇编语言程序设计的特点和步骤 28
2—5 汇编语言程序设计 29
附录:按字母顺序排列的Z80指令系统表 36
第二部分 Z80实用子程序 46
第一章 代码转换程序 46
1—1 十六进制→ASCII码转换程序 46
1—2 ASCII码→十六进制数转换程序 46
1—3 十六进制数的ASCII码→四位二进制数转换程序 47
1—4 ASCII码→二进制转换程序 49
1—5 ASCII码→BCD码转换程序 49
1—6 BCD码→ASCII码转换程序 50
1—7 BCD码→二进制转换程序 52
1—8 十六位二进制数→BCD码数的转换程序—Ⅰ 53
1—9 二进制数→ASCII码字符串转换程序 55
1—10 一位十六进制数→ASCII码转换程序 56
1—11 十进制(BCD码)→七段代码转换程序 56
1—12 十六进制→七段代码转换程序 57
1—13 十六位二进制数→BCD码数转换程序—Ⅱ 58
1—14 一组无符号的十进制数→二进制数转换程序 61
1—15 格雷码→二进制码转换程序 62
1—16 二进制码→格雷码转换程序 64
第二章 二进制定点运算 66
2—1 多字节加法 66
2—2 多字节减法 66
2—3 单字节无符号数乘法 67
2—4 单字节有符号数乘法(纯小数) 68
2—5 单字节有符号数乘法(整数) 69
2—6 多字节无符号数乘法 71
2—7 多字节有符号数乘法 73
2—8 单字节无符号数除法(整除) 76
2—9 单字节有符号数除法(一) 78
2—10 单字节有符号数除法(二) 80
2—11 多字节无符号数除法(整数) 82
2—12 多字节有符号数除法(整数) 85
第三章 BCD码运算 89
3—1 单字节BCD码加法 89
3—2 多字节BCD码加法 89
3—3 单字节BCD码减法 90
3—4 多字节BCD码减法 90
3—5 一位BCD码乘法 91
3—6 单字节BCD码乘法 92
3—7 多字节BCD码乘法 94
3—8 单字节BCD码除法 96
3—9 多字节BCD码除法(一) 99
3—10 多字节BCD码除法(二) 102
3—11 求单字节BCD码整数平方根子程序 104
3—12 求双字节BCD码整数平方根子程序 106
3—13 BCD码浮点运算加法 107
3—14 BCD码浮点运算减法 111
3—15 BCD码浮算运算除法 116
3—16 BCD码浮点运算乘法 121
第四章 浮点运算及函数 129
4—1 整数转化成浮点数FLOT 129
4—2 浮点数规格化子程序FNOR 130
4—3 浮点数加法子程序FADD 133
4—4 浮点数减法子程序FSUB 137
4—5 浮点数乘法子程序FMUL 137
4—6 浮点数除法子程序FDIV 140
4—7 浮点数平方根子程序FSQT 145
4—8 浮点数绝对值子程序FABS 149
4—9 存浮点数子程序FGET 150
4—10 浮点数退栈子程序FPOP 151
4—11 浮点数进栈子程序FPSH 152
4—12 浮点数求补子程FNEG及FNGX 152
4—13 浮点数求积(商)符号子程序FSIG 154
4—14 浮点数对阶右移子程序FASR 155
4—15 多字节左移一位子程序FRAL及FRL0 157
4—16 初始化子程序FSPS 157
4—17 单字节带进位加法子程序FADS 158
4—18 单字节带进位减法子程序FSBS 158
4—19 B、C、D寄存器左移子程序RLBD 158
4—20 浮点数平方子程序FSQU 159
4—21 浮点数立方子程序FCUBE 159
4—22 取浮点数子程序FPUT 160
4—23 角度化弧度子程序CDTR 161
4—24 弧度化角度子程序CRTD 161
4—25 角度余弦函数FCOD 161
4—26 角度正弦函数FSID 162
4—27 弧度余弦函数FDOS 162
4—28 弧度正弦函数FSIN 162
4—29 正切函数FTAN 167
4—30 常用对数函数FLOG 168
4—31 自然对数函数FLN 168
4—32 反正切函数FATN 173
4—33 指数函数FEXP 178
4—34 多项式计算子程序FCAL 182
4—35 取整函数FIXF 184
4—36 取整子程序FIXI 184
4—37 B、C、D寄存器右移子程序RRBD 186
4—38 浮点数比较子程序FCMP 186
第五章 检索和排序 188
5—1 找最大数(无符号) 188
5—2 找最大数(带符号) 189
5—3 顺序检索 190
5—4 对分检索 192
5—5 交换法八位排序(无符号) 194
5—6 交换法八位排序(带符号) 194
5—7 交换法十六位排序(无符号) 196
5—8 泡冒法八位排序(无符号) 198
5—9 泡冒法八位排序(带符号) 199
5—10 Shell交换法八位排序(无符号) 200
第六章 A/D与D/A转换和数据采集6—1 A/D转换程序 204
6—2 锯齿波产生程序 205
6—3 三角波产生程序 207
6—4 梯形波产生程序 209
6—5 方波、矩形波及脉冲波产生程序 209
6—6 正弦波产生程序 210
6—7 数据采集程序(流水线法) 211
6—8 数据采集程序(中断方式)(一) 213
6—9 数据采集程序(中断方式)(二) 216
第七章 数据块移动、合并与校验7—1 数据块移动 218
7—2 数据块合并 218
7—3 数据块校验 221
7—4 数据校验和(8位) 222
7—5 条件选择转移 224
第八章 数据处理程序 225
8—1 求算术平均值 225
8—2 双字节二进制数开平方 228
8—3 五中取三求平均值 229
8—4 解线性方程组 231
8—5 计算?Ai×Bi 237
第九章 延时程序 240
9—1 1—255 MS 软件延时 240
9—2 1—255秒 软件延时 240
9—3 1—255秒 CTC中断延时 242
9—4 1—255分 CTC中断延时 244
9—5 时、分、秒 实时钟程序 246
第十章 其它 249
10—1 RAM存贮器读写检查程序 249
10—2 程序执行时间测定程序 252
10—3 显示子程序 253
10—4 直接七段码转换及逆显示子程序 255
10—5 七段显示计数程序 256
10—6 用CMCP—16微型打印机打印X轴的箭头部份程序 259
10—7 用CMCP—16微型打印机打印Y轴的箭头部分程序 260
10—8 实时打印输入数据的连续曲线 262
附录:ASCII表 265