51单片机寻址方式_第1页
51单片机寻址方式_第2页
51单片机寻址方式_第3页
51单片机寻址方式_第4页
51单片机寻址方式_第5页
已阅读5页,还剩18页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

思考题与习题部分参考答案 1 51 单片机的寻址方式单片机的寻址方式 寻址方式 指定操作数所在单元的方法 寻址方式 指定操作数所在单元的方法 在我们学习的 8051 单片机中 有 7 种寻址方法 下面我们将逐一进 行分析 一 一 立即寻址立即寻址 用 作前缀 MOV A 20H 在这种寻址方式中 指令多是双字节的 立即数就是存放在程序存储立即数就是存放在程序存储 器中的常数 换句话说就是操作数 立即数 是包含在指令字节中的器中的常数 换句话说就是操作数 立即数 是包含在指令字节中的 例如 MOV A 3AH 这条指令的指令代码为 74H 3AH 是双字节指令 这条指令的功能 是把立即数 3AH 送入累加器 A 中 MOV DPTR 8200H 在前面学单片机的专用寄存器时 我们已学过 DPTR 是一个 16 位的寄存器 它由 DPH 及 DPL 两个 8 位的寄存器 组成 这条指令的意思就是把立即数的高 8 位 即 82H 送入 DPH 寄存器 把立即数的低 8 位 即 00H 送入 DPL 寄存器 思考题与习题部分参考答案 2 二 直接寻址直接寻址 指令中直接给出操作数的地址 MOV A 30H 这条指令中操作数就在 30H 单元中 也就是 30H 是操作数的地址 并非操作数 MOV 30H DPH 在在 80C5180C51 单片机中 直接地址只能用来表示内部数据存储器 位地址单片机中 直接地址只能用来表示内部数据存储器 位地址 空间以及特殊功能寄存器 空间以及特殊功能寄存器 具体的说就是 1 1 内部数据存储器 内部数据存储器 RAMRAM 低低 128128 单元 在指令中是以直接单元地址形单元 在指令中是以直接单元地址形 式给出 式给出 我们知道低我们知道低 128128 单元的地址是单元的地址是 00H 7FH00H 7FH 在指令中直接以单元地址形 在指令中直接以单元地址形 式给出这句话的意思就是这式给出这句话的意思就是这 0 1270 127 共共 128128 位的任何一位 例如位的任何一位 例如 0 0 位是位是 以以 00H00H 这个单元地址形式给出 这个单元地址形式给出 1 1 位就是以位就是以 01H01H 单元地址给出 单元地址给出 127127 位就是以位就是以 7FH7FH 形式给出 形式给出 2 2 位寻址区 位寻址区 20H 2FH20H 2FH 地址单元 地址单元 3 3 特殊功能寄存器 专用寄存器除以单元地址形式给出外 还可以 特殊功能寄存器 专用寄存器除以单元地址形式给出外 还可以 以寄存器符号形式给出 例如下面我们分析的一条指令以寄存器符号形式给出 例如下面我们分析的一条指令 MOVMOV IEIE 8 8 5H5H 前面的学习我们已知道 中断允许寄存器前面的学习我们已知道 中断允许寄存器 IEIE 的地址是的地址是 80H80H 那么 那么 也就是此指令也可以以也就是此指令也可以以 MOVMOV 80H80H 85H 85H 的形式表述 的形式表述 思考题与习题部分参考答案 3 直接寻址是唯一能访问特殊功能寄存器的寻址方式 直接寻址是唯一能访问特殊功能寄存器的寻址方式 大家来分析下面几条指令 MOV 65H A 将 A 的内容送入内部 RAM 的 65H 单元地址中 MOV A direct 将直接地址单元的内容送入 A 中 MOV direct direct 将直接地址单元的内容送直接地址单元 MOV IE 85H 将立即数 85H 送入中断允许寄存器 IE 前面我们已学过 数据前面加了数据前面加了 的 表示后面的数是立即数的 表示后面的数是立即数 如 85H 就表示 85H 就是一个立即数 数据前面没有加数据前面没有加 号的号的 就表示后面的是一个地址地址 就表示后面的是一个地址地址 如 MOV 65H A 这条指令的 65H 就是一个单元地址 3 寄存器寻址寄存器寻址 操作数存放在工作寄存器 R0 R7 中 或寄存器 B 中 MOV A R2 寄存器寻址的寻址范围是 1 4 个工作寄存器组共有 32 个通用寄存器 但在指令中只能使用当 前寄存器组 工作寄存器组的选择在前面专用寄存器的学习中 我们 已知道 是由程序状态字 PSW 中的 RS1 和 RS0 来确定的 因此在使 思考题与习题部分参考答案 4 用前常需要通过对 PSW 中的 RS1 RS0 位的状态设置 来进行对当前 工作寄存器组的选择 2 部分专用寄存器 例如 累加器 A 通用寄存器 B 地址寄存器 D PTR 和进位位 CY 寄存器寻址方式是指操作数在寄存器中 因此指定了寄存器名称就能 得到操作数 例如 MOV A R0 这条指令的意思是把寄存器 R0 的内容传送到累加 器 A 中 操作数就在 R0 中 INC R3 这条指令的意思是把寄存器 R3 中的内容加 1 从前面的学习中我们应可以理解到 其实寄存器寻址方式就是对由其实寄存器寻址方式就是对由 P P SWSW 程序状态字确定的工作寄存器组的程序状态字确定的工作寄存器组的 R0 R7R0 R7 进行读进行读 写操作写操作 4 寄存器间接寻址寄存器间接寻址 指令中寄存器的内容作为操作数存放的地址 指令中 间接寻址寄存 器前用 表示前缀 寄存间接寻址方式是指寄存器中存放的是操作数的地址 即操作数是寄存间接寻址方式是指寄存器中存放的是操作数的地址 即操作数是 通过寄存器间接得到的 因此称为寄存器间接寻址 通过寄存器间接得到的 因此称为寄存器间接寻址 思考题与习题部分参考答案 5 A MCS 51 单片机规定工作寄存器的 R0 R1 做为间接寻址寄存器 用 于寻址内部或外部数据存储器的 256 个单元 为什么会是 256 个单元 呢 我们知道 R0 或者 R1 都是一个 8 位的寄存器 所以它的寻址空 间就是 2 的八次方 256 例 MOV R0 30H 将值 30H 加载到 R0 中 MOV A R0 把内部 RAM 地址 30H 内的值放到累加器 A 中 MOVX A R0 把外部 RAM 地址 30H 内的值放到累加器 A 中 B 大家想想 如果用 DPTR 做为间址寄存器 那么它的寻址范围是多 少呢 DPTR 是一个 16 位的寄存器 所以它的寻址范围就是 2 的十六 次方 65536 64K 因用 DPTR 做为间址寄存器的寻址空间是 64K 所 以访问片外数据存储器时 我们通常就用 DPTR 做为间址寄存器 例 MOV DPTR 1234H 将 DPTR 值设为 1234H 16 位 MOVX A DPTR 将外部 RAM 或 I O 地址 1234H 内的值放 到累加器 A 中 C 在执行 PUSH 压栈 和 POP 出栈 指令时 采用堆栈指针 SP 作 寄存器间接寻址 例 PUSH 30H 把内部 RAM 地址 30H 内的值放到堆栈区中 思考题与习题部分参考答案 6 堆栈区是由 SP 寄存器指定的 如果执行上面这条命令前 SP 为 60H 命令执行后会把内部 RAM 地址 30H 内的值放到 RAM 的 61H 内 那么做为寄存器间接寻址用的寄存器主要有哪些呢 我们前面提到的 有四个 R0 R1 DPTR SP 寄存器间接寻址范围总结 A A 内部 内部 RAMRAM 低低 128128 单元 对内部单元 对内部 RAMRAM 低低 128128 单元的间接寻址 应使单元的间接寻址 应使 用用 R0R0 或或 R1R1 作间址寄存器 其通用形式为作间址寄存器 其通用形式为 Ri Ri i 0i 0 或或 1 1 B B 外部 外部 RAMRAM 64KB64KB 对外部 对外部 RAM64KBRAM64KB 的间接寻址 应使用的间接寻址 应使用 DPTR DPTR 作间作间 址寻址寄存器 其形式为址寻址寄存器 其形式为 DPTR DPTR 例如 MOVX A DPTR 其功能是把 DPTR 指定的外部 RAM 的单元的内 容送入累加器 A 中 外部 RAM 的低 256 单元是一个特殊的寻址区 除可以用 DPTR 作间址 寄存器寻址外 还可以用 R0 或 R1 作间址寄存器寻址 例如 MOVX A R0 这条指令的意思是 把 R0 指定的外部 RAM 单元 的内容送入累加器 A C C 堆栈操作指令 堆栈操作指令 PUSHPUSH 和和 POPPOP 也应算作是寄存器间接寻址 即以 也应算作是寄存器间接寻址 即以 堆栈指针堆栈指针 SPSP 作间址寄存器的间接寻址方式 作间址寄存器的间接寻址方式 思考题与习题部分参考答案 7 寄存器间接寻址方式不可以访问特殊功能寄存器 寄存器间接寻址方式不可以访问特殊功能寄存器 寄存器间接寻址也须以寄存器符号的形式表示 为了区别寄存器寻址寄存器间接寻址也须以寄存器符号的形式表示 为了区别寄存器寻址 和寄存器间接寻址的区别 在寄存器间接寻址方式中 寄存器的名称和寄存器间接寻址的区别 在寄存器间接寻址方式中 寄存器的名称 前面加前缀标志前面加前缀标志 5 基址寄存器加变址寄存器的变址寻址基址寄存器加变址寄存器的变址寻址 MOV A A DPTR 操作数地址 变地址 基地址 基地址寄存器 DPTR 或 PC 变址寄存器 A 该寻址方式常用于访问程序存储器 查表 这种寻址方式以程序计数器 PC 或 DPTR 为基址寄存器 累加器 A 为变 址寄存器 变址寻址时 把两者的内容相加 所得到的结果作为操作 数的地址 这种方式常用于访问程序存储器 ROM 中的数据表格 即查 表操作 变址寻址只能读出程序内存入的值 而不能写入 也就是说变址寻址 这种方式只能对程序存储器进行寻址 或者说它是专门针对程序存储 器的寻址方式 思考题与习题部分参考答案 8 例 MOVC A A DPTR 这条指令的功能是把 DPTR 和 A 的内容相加 再把所得到的程序存储 器地址单元的内容送 A 假若指令执行前 A 54H DPTR 3F21H 则这 条指令变址寻址形成的操作数地址就是 54H 3F21H 3F75H 如果 3F75 H 单元中的内容是 7FH 则执行这条指令后 累加器 A 中的内容就是 7FH 变址寻址的指令只有三条 分别如下 JMP A DPTR MOVC A A DPTR MOVC A A PC 第一条指令 JMP A DPTR 这是一条无条件转移指令 这条指令的意思就是 DPTR 加上累加器 A 的内容做为一个 16 位的地址 执行 JMP 这条指令是 程序就转移到 A DPTR 指定的地址去执行 第二 三条指令 MOVC A A DPTR 和 MOVC A A PC 指令 这两条指令的通常用于查表操作 功能完全一样 但使用起来却有一这两条指令的通常用于查表操作 功能完全一样 但使用起来却有一 定的差别 现详细说明如下 定的差别 现详细说明如下 思考题与习题部分参考答案 9 我们知道 我们知道 PCPC 是程序指针 是十六位的 是程序指针 是十六位的 DPTRDPTR 是一个是一个 1616 位的数据指位的数据指 针寄存器 按理 它们的寻址范围都应是针寄存器 按理 它们的寻址范围都应是 64K64K 我们在学习特殊功能 我们在学习特殊功能 寄存器时已知道 程序计数器寄存器时已知道 程序计数器 PCPC 是始终跟踪着程序的执行的 也就是始终跟踪着程序的执行的 也就 是说 是说 PCPC 的值是随程序的执行情况自动改变的 我们不可以随便的的值是随程序的执行情况自动改变的 我们不可以随便的 给给 PCPC 赋值 而赋值 而 DPTRDPTR 是一个数据指针 我们就可以给空的数据指针是一个数据指针 我们就可以给空的数据指针 D D PTRPTR 进行赋值 我们再看指令进行赋值 我们再看指令 MOVCMOVC A A A PC A PC 这条指令的意思是将这条指令的意思是将 PCPC 的值与累加器的值与累加器 A A 的值相加作为一个地址 而的值相加作为一个地址 而 PCPC 是固定的 累加器是固定的 累加器 A A 是一个是一个 8 8 位的寄存器 位的寄存器 它的寻址范围是它的寻址范围是 256256 个地址单元个地址单元 讲到这里 讲到这里 大家应可明白 大家应可明白 MOVCMOVC A A A PC A PC 这条指令的寻址范围其实就是只这条指令的寻址范围其实就是只 能在当前指令下能在当前指令下 256256 个地址单元 所在 这在我们实际应用中 可能个地址单元 所在 这在我们实际应用中 可能 就会有一个问题 如果我们需要查询的数据表在就会有一个问题 如果我们需要查询的数据表在 256256 个地址单元之内个地址单元之内 则可以用 则可以用 MOVCMOVC A A A PC A PC 这条指令进行查表操作 如果超过了这条指令进行查表操作 如果超过了 2 2 5656 个单元 则不能用这条指令进行查表操作 刚才我们已说到 个单元 则不能用这条指令进行查表操作 刚才我们已说到 DPTDPT R R 是一个数据指针 这个数据指针我们可以给它赋值操作的 通过赋是一个数据指针 这个数据指针我们可以给它赋值操作的 通过赋 值操作 我们可以使值操作 我们可以使 MOVCMOVC A A A DPTR A DPTR 这条指令的寻址范围达到这条指令的寻址范围达到 6 6 4K4K 这就是这两条指令在实际应用当中要注意的问题 这就是这两条指令在实际应用当中要注意的问题 变址寻址方式是 MCS 51 单片机所独有的一种寻址方式 6 位寻址位寻址 思考题与习题部分参考答案 10 80C51 单片机有位处理功能 可以对数据位进行操作 因此就有相应 的位寻址方式 所谓位寻址 就是对内部所谓位寻址 就是对内部 RAMRAM 或可位寻址的特殊功能或可位寻址的特殊功能 寄存器寄存器 SFRSFR 内的某个位 直接加以置位为内的某个位 直接加以置位为 1 1 或复位为或复位为 0 0 位寻址的范围 也就是哪些部份可以进行位寻址 A 我们在学习 51 单片机的存储器结构时 我们已知道在单片机的内我们已知道在单片机的内 部数据存储器部数据存储器 RAMRAM 的低的低 128128 单元中有一个区域叫位寻址区 它的单元单元中有一个区域叫位寻址区 它的单元 地址是地址是 20H 2FH20H 2FH 共有 共有 1616 个单元 一个单元是个单元 一个单元是 8 8 位 所以位寻址区位 所以位寻址区 共有共有 128128 位 这位 这 128128 位都单独有一个位地址 其位地址的名字就是位都单独有一个位地址 其位地址的名字就是 0 0 0H 7FH0H 7FH 这里就有一个比较麻烦的问题需要大家理解清楚了 我们在前面的学 习中 00H 01H 7FH 等等 所表示的都是一个字节 或者叫单 元地址 而在这里 这些数据都变成了位地址 我们在指令中 或 者在程序中如何来区分它是一个单元地址还是一个位地址呢 这个问 题 也就是我们现在正在研究的位寻址的一个重要问题 其实 区分 这些数据是位地址还是单元地址 我们都有相应的指令形式的 这个 问题我们在后面的指令系统学习中再加以论述 B 对专用寄存器位寻址 这里要说明一下 不是所有的专用寄存器 都可以位寻址的 具体哪些专用寄存器可以哪些专用寄存器不可以 思考题与习题部分参考答案 11 请大家回头去看看我们前面关于专用寄存器的相关文章 一般来说 地址单元可以被 8 整除的专用寄存器 通常都可以进行位寻址 当然 并不是全部 大家在应用当中应引起注意 后面有详细介绍 7 相对寻址相对寻址 把指令中给定的地址偏移量与本指令所在单元地址 PC 内容 相加 得到真正有效的操作数所存放的地址 举 李同学 20 岁 张同学比李同学大 3 岁 的例子 JC 60H 设 PC 2000H 则当 C 1 时 转移的目的地址 PC 2 60H 专用寄存器的位寻址表示方法 专用寄存器的位寻址表示方法 下面我们以程序状态字 PSW 来进行说明 D7D6D5D4D3D2D1D0 CY AC F0 RS1 RS0 OV P 思考题与习题部分参考答案 12 1 直接使用位地址表示 直接使用位地址表示 看上表 PSW 的第五位地址是 D5 所以 可以表示为 D5H MOV C D5H 2 位名称表示 位名称表示 表示该位的名称 例如 PSW 的位 5 是 F0 所以可 以用 F0 表示 MOV C F0 3 单元 字节 地址加位表示 单元 字节 地址加位表示 D0H 单元位 5 表示为 DOH 5 MOV C D0H 5 4 专用寄存器符号加位表示 专用寄存器符号加位表示 例如 PSW 5 MOV C PSW 5 这四种方法实现的功能都是相同的 只是表述的方式不同而已 例题 例题 1 说明下列指令中源操作数采用的寻址方式 MOV R5 R7 思考题与习题部分参考答案 13 答案 寄存器寻址方式 MOV A 55H 直接寻址方式 MOV A 55H 立即寻址方式 JMP A DPTR 变址寻址方式 MOV 30H C 位寻址方式 MOV A R0 间接寻址方式 MOVX A R0 间接寻址方式 思考题与习题部分参考答案 14 改错题改错题 请判断下列的 MCS 51 单片机指令的书写格式是否有错 若有 请说明错误原因 MOV R0 R3 答案 间址寄存器不能使用 R2 R7 MOVC A R0 DPTR 变址寻址方式中的间址寄存器不可使用 R0 只可使用 A ADD R0 R1 运算指令中目的操作数必须为累加器 A 不可为 R0 MUL A R0 乘法指令中的乘数应在 B 寄存器中 即乘法指令只可使用 AB 寄存器 组合 MCS51 单片机指令系统 与汇编语言程序设计 1 8051 单片机的指令系统有何特点 解 解 8051 的指令系统由 111 条指令组成 如果按字节数分类 有 49 条单字节指令 46 条双 字节指令和 16 条三字节指令 以单字节指令为主 如果按照指令执行时间分类 有 64 条单 周期指令 45 条双周期指令和 条四周期指令 以单周期指令为主 8051 的指令系统具有以下特点 1 存储效率高 执行速度快 可以进行直接地址到直接地址的数据传送 能把一个并 行 I O 口中的内容传送到内部 RAM 单元中而不必经过累加器 A 或工作寄存器 Rn 这样可 以大大提高传送速度和缓解累加器 A 的瓶颈效应 思考题与习题部分参考答案 15 2 用变址寻址方式访问程序存储器中的表格 将程序存储器单元中的固定常数或表格 字节内容传送到累加器 A 中 这为编成翻译算法提供了方便 3 在算术运算指令中设有乘法和除法指令 4 指令系统中一些对 I O 口进行操作的指令具有 读 修改 写 的功能 这一 功能指 在执行读锁存器的指令时 CPU 首先完成将锁存器的值通过缓冲器 BUF2 度入内部 进行修改 改变 然后重新写到锁存器中去 这种类型指令包含所有的逻辑操作和位操作指 令 5 8051 单片机内部有一个布尔处理器 对为地址空间具有丰富的位操作指令 布尔操 作类指令有 17 条 包括布尔传送指令 布尔状态控制指令 布尔逻辑操作指令 布尔条件 转移指令 2 8051 单片机指令系统按功能可分为几类 具有几种寻址方式 它们的寻址范围如何 解 解 MCS 51 单片机指令系统按功能可分为 5 类 1 数据传送指令 2 算术运算指令 3 逻辑运算和移位指令 4 控制转移指令 5 位操作指令 MCS 51 单片机的指令系统提供了七种寻址方式 其对应的寻址范围如下表 3 访问特殊功能寄存器和外部数据存储器应采用哪种寻址方式 解解 访问特殊功能寄存器 应采用直接寻址 位寻址方式 访问外部数据存储器 应采用寄存器间接寻址方式 在 0 255B 范围内 可用寄存器 R0 R1 间接寻址 MOVX A R0 或 MOVX A R1 MOVX R0 A 或 MOVX R1 A 在 0 64KB 范围内 可用 16 位寄存器 DPTR 间接寻址 MOVX A DPTR MOVX DPTR A 4 DA A 指令的作用是什么 怎样使用 寻址方式使用的变量 寻址范围 立即寻址程序存储器 直接寻址 内部 RAM 低 128 个字节 特殊功能寄存器 SFR 寄存器寻址R0 R7 A B DPTR C R0 R1 SP内部 RAM 堆栈指针 SP 寄存器间接寻址 R0 R1 DPTR外部 RAM 变址寻址 A PC A DPTR程序存储器 相对寻址PC 偏移量程序存储器 位寻址 内部 RAM 低 128B 位寻址区 可位寻址的特殊功能寄存器位 思考题与习题部分参考答案 16 解 解 这条指令是在进行 BCD 码加法运算时 跟在 ADD 和 ADDC 指令之后 用来对 BCD 码的加法运算结果自动进行修正的 使其仍为 BCD 码表达形式 在计算机中 遇到十进制调整指令时 中间结果的修正是由 ALU 硬件中的十进制修正电路 自动进行的 用户不必考虑何时该加 6 使用时只需在上述加法指令后面紧跟一条 DA A 指令即可 5 片内 RAM 20H 2FH 单元中的 128 个位地址与直接地址 00H 7FH 形式完全相同 如何在 指令中区分出位寻址操作和直接寻址操作 解解 虽然内部 RAM 位寻址区的位地址范围 00H 7FH 与低 128 个单元的单元地址范围 00H 7FH 形式完全相同 但是在应用中可以通过指令的类型区分单元地址和位地址 位寻址的操作只适用于下列位指令 而直接寻址操作对这些指令是无效的 MOV C bit MOV bit C CLR bit SETB bit CPL bit ANL C bit ANLC bit JB bit rel JNB bit rel 6 8051 单片机指令系统中有长跳转 LJMP 长调用 LCALL 指令 为何还没有设置了绝对跳 转 AJMP 绝对调用 ACALL 指令 在实际使用是应怎样考虑 解解 在实际应用中 可从寻址范围和指令长度两个方面来选择长跳转指令 LJMP 和短跳转指 令 AJMP 长调用指令 LCALL 和短调用指令 ACALL 长跳转 LJMP 在 64KB 范围内转移 而短跳转 AJMP 只能在 2KB 空间转移 长调用 LCALL 调用位于 64KB 程序空间的子程序 而短调用 ACALL 调用位于 2KB 程序空间范围 的子程序 AJMP ACALL 指令代码长度为 个字节 LJMP LCALL 指令代码长度为 个 字节 7 SJMP AJMP 和 LJMP 指令在功能上有何不同 解解 指令的转移范围不同 SJMP 是 256B 范围内的相对转移指令 AJMP 是 2KB 范围内的无条件短跳转指令 LJMP 是 64KB 范围内的无条件长跳转指令 8 MOVC A DPTR 与 MOVX A DPTR 指令有何不同 解解 指令的转移范围不同 SJMP 是 256B 范围内的相对转移指令 AJMP 是 2KB 范围内的无条件短跳转指令 LJMP 是 64KB 范围内的无条件长跳转指令 9 在 MOVC A A DPTR 和 MOVC A A PC 中 分别使用了 DPTR 和 PC 作基址 请问这两个基址代表什么地址 使用中有何不同 思考题与习题部分参考答案 17 解解 使用 A DPTR 基址变址寻址时 DPTR 为常数且是表格的首地址 A 为从表格首址到 被访问字节地址的偏移量 使用 A PC 基址变址寻址时 PC 仍是下条指令首地址 而 A 则是从下条指令首地址 到常数表格中的被访问字节的偏移量 10 设片内 RAM 中的 40H 50H 写出执行下列程序段后寄存器 A 和 R0 以及片内 RAM 中 50H 和 51H 单元的内容为何值 MOV A 40H MOV R0 A MOV A 00 MOV R0 A MOV A 30H MOV 51H A MOV 52H 70H 解 解 结果为 A 30H R0 50H 50H 00H 51H 30H 11 设堆栈指针 SP 60H 片内 RAM 中的 30H 24H 31H 10H 执行下列程序 段后 61H 62H 30H 31H DPTR 及 SP 中的内容将有何变化 解 解 结果为 61H 24H 62H 10H 30H 00H 31H 0FFH DPTR 2410H SP 60H 12 在 8051 的片内 RAM 中 已知 20H 30H 30H 40H 40H 50H 50H 55H 分析下面各条指令 说明源操作数的寻址方式 分析按顺序执行各条指令后的 结果 MOV A 40H MOV R0 A MOV P1 0F0H MOV R0 20H MOV 50H R0 MOV A R0 MOV P2 P1 解 解 指令 源操作数的寻址方式 执行指令后的结果 MOV A 40H 直接寻址 A 50H MOV R0 A 寄存器寻址 R0 50H MOV P1 80H 立即寻址 P1 80H MOV R0 20H 寄存器间接寻址 50H 30H MOV DPTR 2000H 立即寻址 DPTR 2000H MOV 40H 30H 直接寻址 40H 40H 思考题与习题部分参考答案 18 MOV R0 30H 直接寻址 R0 40H MOV D0H R0 直接寻址 D0H 40H MOV 10H 10H 立即寻址 10H 10H MOV A R0 寄存器间接寻址 A 50H MOV P2 P1 寄存器寻址 P2 80H 13 完成以下的数据传送过程 1 R1 的内容传送到 R0 2 片外 RAM 20H 单元的内容送 R0 3 片外 RAM 20H 单元的内容送片内 RAM 20H 4 片外 RAM 1000H 单元的内容送片内 RAM 20H 5 片外 RAM 20H 单元的内容送 R0 6 片外 RAM 2000H 单元的内容送片内 RAM 20H 7 片外 RAM 20H 单元的内容送片外 RAM 20H 解解 1 R1 的内容传送到 R0 MOV A R1 MOV R0 A 2 片外 RAM 20H 单元内容送 R0 MOV DPTR 0020H MOVX A DPTR MOV R0 A 3 片外 RAM 20H 单元的内容送片内 RAM 20H 单元 MOV DPTR 0020H MOVX A DPTR MOV 20H A 4 片外 RAM 1000H 单元的内容送片内 RAM 20H 单元 MOV DPTR 1000H MOVX A DPTR MOV 20H A 5 ROM 2000H 单元的内容送 R0 单元 MOV A 00H MOV DPTR 2000H MOVC A A DPTR MOV R0H A 6 ROM 2000H 单元的内容送片内 RAM 20H 单元 MOV A 00H MOV DPTR 2000H MOVC A A DPTR MOV 20H A 思考题与习题部分参考答案 19 7 ROM 2000H 单元的内容送片外 RAM 20H 单元 MOV A 00H MOV DPTR 2000H MOVC A A DPTR MOV DPTR 0020H MOVX DPTR A 14 设有两个 4 位 BCD 码 分别存放在片内 RAM 的 23H 22H 单元和 33H 32H 单元中 求它们的和 并送入 43H 42H 单元中去 以上均为低位字节 高位在高字节 解解 ORG 0000H LJMP START ORG 0030H START MOV A 22H ADD A 32H DA A MOV 42H A MOV A 23H ADDC A 33H DA A MOV 43H A SJMP END 15 编程将片内 RAM 的 40H 60H 单元中内容送到片外 RAM 以 3000H 开始的单元中 解解 ORG 0000H LJMP MAIN ORG 0030H MAIN MOV R7 20H MOV R1 40H MOV DPTR 3000H LOOP MOV A R1 MOVX DPTR A INC R1 INC DPTR DJNZ R7 LOOP SJMP END 16 编程计算片内 RAM 区 30H 37H 的 8 个单元中数的算术平均值 结果存在 3AH 单元中 解解 ORG 0000H LJMP MAIN ORG 0030H 思考题与习题部分参考答案 20 MAIN MOV R0 30H MOV R1 00H MOV R2 00H MOV R3 07H LP2 MOV A R0 ADD A R2 MOV R2 A JNC LP1 INC R1 LP1 INC R0

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论