cjne a 20 retune,30h,是什么寻址方式

汇编语句:CJNE A, 30H ,$+3是什么意思呢_百度知道
汇编语句:CJNE A, 30H ,$+3是什么意思呢
我有更好的答案
等不等都执行下一句。本行指令长度恰好为3,因此,相等时继续执行下一句,不相等时判断A,与30H是否相等。主要变化可能体现在进位位(A小于(30H)时,CY置1)。$表示本行代码的地址
采纳率:65%
A和30H的内容不等时,去执行当前指令地址加3地址的指令!!
为您推荐:
其他类似问题
您可能关注的内容
换一换
回答问题,赢新手礼包
个人、企业类
违法有害信息,请在下方选择后提交
色情、暴力
我们会通过消息、邮箱等方式尽快将举报结果通知您。定时、中断练习一
& &&&& 单片机教程第1课&&单片机教程第18课&&单片机教程第2课&&单片机教程第19课&&单片机教程第3课&&单片机教程第20课&&单片机教程第4课&&单片机教程第21课&&单片机教程第5课&&单片机教程第22课&&单片机教程第6课&&单片机教程第23课&&单片机教程第7课&&单片机教程第24课&&单片机教程第8课&&单片机教程第25课&&单片机教程第9课&&单片机教程第26课&&单片机教程第10课&&单片机教程第27课&&单片机教程第11课&&单片机教程第28课&&单片机教程第12课&&单片机教程第29课&&单片机教程第13课&&单片机教程第30课&&单片机教程第14课&&单片机教程第31课&&单片机教程第15课&&单片机教程第32课&&单片机教程第16课&&单片机教程第33课&&单片机教程第17课&&&单片机教程第34课&&&&&&&&&
平凡的单片机教程定时、中断练习一11ORG&&&&&& 0000HAJMP&&&& STARTORG&&&&&& 30HSTART:&&&&&& MOV&&&&&&
P1,#0FFH;关所 灯&&&&&& MOV&&&&&&
TMOD,#B;定时/计数器0工作于方式1&&&&&& MOV&&&&&&
TH0,#15H&&&&
&&&&&& MOV&&&&&&
TL0,#0A0H;即数5536&&&&&& SETB&&&&
TR0 ;定时/计数器0开始运行LOOP:JBC&&&
TF0,NEXT ;如果TF0等于1,则清TF0并转NEXT处&&&&&& AJMP&&&&
LOOP;否则跳转到LOOP处运行NEXT:CPL&&&&
P1.0&&&&&& MOV&&&&&&
TH0,#15H&&&&&& MOV&&&&&&
TL0,#9FH;重置定时/计数器的初值&&&&&& AJMP&&&&
LOOP&&&&&& END&&&&&&
AJMP&&&& LOOPENDJBCTF0/0011001JBC10LOOP……AJMPLOOPDJNZDJNZ2ORG&&&&&& 0000HAJMP&&&& STARTORG&&&&&& 000BH ;定时器0的中断向量地址AJMP&&&& TIME0&&&
;跳转到真正的定时器程序处ORG&&&&&& 30HSTART:&&&&&& MOV&&&&&&
P1,#0FFH;关所 灯&&&&&& MOV&&&&&&
TMOD,#B;定时/计数器0工作于方式1&&&&&& MOV&&&&&&
TH0,#15H&&&&
&&&&&& MOV&&&&&&
TL0,#0A0H;即数5536&&&&&& SETB&&&&
EA&& ;开总中断允许&&&&&& SETB&&&&
ET0 ;开定时/计数器0允许SETB&&&& TR0 ;定时/计数器0开始运行LOOP:&&& AJMP&&&&
LOOP&&&& ;真正工作时,这里可写任意程序TIME0:&&&&&&&&&&&&&&&&
;定时器0的中断处理程序&&&&&& PUSH&&&&
ACCPUSH&&&& PSW&&&&&
;将PSW和ACC推入堆栈保护&&&&&& CPLP1.0&&&&&&
&&&&&& MOV&&&&&&
TH0,#15H&&&&&& MOV&&&&&&
TL0,#0A0H&&& ;重置定时常数&&&&&& POP&&&&&&
PSW&&&&&& POP&&&&&&
ACC&&&&&& RETIENDTF001CPU000B8000BACCPSW5536600006000012M60000601S65536ORG&&&&&& 0000HAJMP&&&& STARTORG&&&&&& 000BH ;定时器0的中断向量地址AJMP&&&& TIME0&&&
;跳转到真正的定时器程序处ORG&&&&&& 30HSTART:&&&&&& MOV&&&&&&
P1,#0FFH;关所 灯&&&&&& MOV&&&&&&
30H,#00H;软件计数器预清0&&&&&& MOV&&&&&&
TMOD,#B;定时/计数器0工作于方式1&&&&&& MOV&&&&&&
TH0,#3CH&&&&
&&&&&& MOV&&&&&&
TL0,#0B0H;即数15536&&&&&& SETB&&&&
EA&& ;开总中断允许&&&&&& SETB&&&&
ET0 ;开定时/计数器0允许SETB&&&& TR0 ;定时/计数器0开始运行LOOP:&&& AJMP&&&&
LOOP&&&& ;真正工作时,这里可写任意程序TIME0:&&&&&&&&&&&&&&&&
;定时器0的中断处理程序&&&&&& PUSH&&&&
ACCPUSH&&&& PSW&&&&&
;将PSW和ACC推入堆栈保护&&&&&& INC30H&&&&&& MOV&&&&&&
A,30H&&&&&& CJNE&&&&
A,#20,T_RET&&&&&&
;30H单元中的值到了20了吗?T_L1:&&&& CPL P1.0&&&&&&&&&&&&&
;到了,取反P10&&&&&& MOV&&&&&&
30H,#0;清软件计数器T_RET:&&&&&& MOV&&&&&&
TH0,#15H&&&&&& MOV&&&&&&
TL0,#9FH&&&&&
;重置定时常数&&&&&& POP&&&&&&
PSW&&&&&& POP&&&&&&
ACC&&&&&& RETIEND/050P10120P1020P1020*501000512P101SP112S20P1040P110ORG&&&&&&
0000HAJMP&&&&
STARTORG&&&&&&
000BH;0AJMP&&&&
TIME0&&& ;ORG&&&&&&
30HSTART:&&&&&&
P1,#0FFH ;&&&&&&
30H,#00H ;0&&&&&&
TMOD,#B;/01&&&&&&
TH0,#3CH&&&&&&&&&&&
TL0,#0B0H ;15536&&&&&&
EA&& ;&&&&&&
ET0 ;/0SETB&&&&&
TR0 ;/0LOOP:&&&
AJMP&&&& LOOP&&&&
;,TIME0:&&&&&&&&&&&&&&&&
ACCPUSH&&&&&
;PSWACC&&&&&&
INC 30H&&&&&&
INC 31H;1&&&&&&
A,30H&&&&&&
A,#20,T_NEXT&&&& ;30H20?T_L1:&&&&&
CPL P1.0&&&&&&&
;,P10&&&&&&
30H,#0 ;T_NEXT:&&&&&&
A,31H&&&&&&
A,#40,T_RET ;31h40?T_L2:&&&&&&
CPL P1.1&&&&&&
31H,#0&&&&&&&&&&
;,P11,,T_RET:MOV&&&&&
TH0,#15H&&&&&&
TL0,#9FH&&&&&
POP PSW&&&&&&
POP ACC&&&&&&文档分类:
第02章 单片机指令系统与汇编语言程序设计 习题解答.doc
下载后只包含 1 个 DOC 格式的文档,没有任何的图纸或源代码,
下载前请先预览,预览内容跟原文是一样的,在线预览图片经过高度压缩,下载原文更清晰。
您的浏览器不支持进度条
下载文档到电脑,查找使用更方便
还剩?页未读,继续阅读
该用户其他文档
下载所得到的文件列表第02章 单片机指令系统与汇编语言程序设计 习题解答.doc
文档介绍:
第 02章单片机指令系统与汇编语言程序设计习题解答一、填空题 1. MCS-51 单片机指令系统中有 111 条指令。 2. MCS-51 单片机指令中, Rn 表示 R0、 R1、 R2、 R3、 R4、 R5、 R6、 R7 中的一个。 3. MCS-51 单片机指令中, @ 表示间接寻址。 4. MCS-51 单片机指令中, $ 表示当前指令的首地址。 5. MCS-51 单片机寻址方式有立即数、直接地址、寄存器、寄存器间接、变址、相对、位寻址等七种寻址方式。 6. 指令 MOVC A, @A+PC 的功能是将A 的内容与 PC 当前值相加作为程序存储器地址, 再将该地址单元的内容传送到 A。 7. 指令 JBC CY, LOOP 是3 字节、 2 个机器周期指令。 8. 指令 DAA 的功能是对A 中当前值进行十进制调整。 9. 调用子程序时,将 PC 当前值保存到堆栈。 10. MCS-51 单片机堆栈操作的基本原则是先进后出。二、简答题 1. MCS-51 单片机指令一般由哪几个部分组成?各部分的功能是什么? 答: MCS-51 单片机指令一般由标号、操作码助记符、操作数、注释四部分组成。标号是一条指令的标志, 是可选字段, 与操作码之间用“:”隔开; 设置标号的目的是为了方便调用或转移。标号的选择应遵从下列规定: ?标号由 1~8 个字母或数字组成,也可以使用一个下划线符号“_”。?第一个字符必须是字母。?指令助记符或系统中保留使用的字符串不能作为标号。?标号后面需要有一个冒号。?一条语句可以有标号, 也可以没有标号, 取决于程序中其它语句是否需要访问这条语句。操作码规定指令的功能, 是一条指令的必备字段, 如果没有操作码, 就不能成为指令。它与操作数之间用“空格”隔开。操作数是指令操作的对象。分为目的操作数和源操作数两类, 它们之间用“,”分隔。操作数是可选字段。一条指令可以有 0、1、2、3 个操作数。注释是对指令功能的说明解释。以“;”开始。 2. 程序中, 和 END 的作用是什么? 答: ORG 用于定义汇编语言源程序或数据块存储的起始地址。 END 用于指示源程序到此全部结束。在汇编时,对 END 后面的指令不予汇编。因此, EN D 语句必须放在整个程序的末尾,有且只能有一个。 3. 简述堆栈指令 PUSH 和 POP 的操作过程。答: 执行 PUSH 指令时, 先将 SP 的内容加 1, 指向新的堆栈栈顶单元, 然后将指定地址单元的内容送到堆栈栈顶单元。执行 POP 指令时, 先将 SP 指向的堆栈栈顶单元内容送到指定地址单元, 然后将 SP 的内容减 1 ,修改堆栈栈顶单元。 4.若若 SP=25H SP=25H ,标号,标号 LABEL LABEL 的值为的值为 H 。指令。指令““ LCALL LCALL LABEL LABEL ””的首地址为的首地址为 2345H, 2345H, 问执行问执行长调用指令长调用指令““ LCALL LCALL LABEL LABEL ””后,堆栈指针和堆栈的内容发生什么变化? 后,堆栈指针和堆栈的内容发生什么变化? PC PC 的值等于的值等于什么? 什么? 答: 答: PC 当前值压入堆栈,并转向子程序, SP=27H, (26H)=48H,(27)=23H,PC=3456H 5. 已知已知 SP=25H SP=25H , , PC=2345H PC=2345H , ,( ( 24H 24H ) ) =12H =12H , ,( ( 25H 25H ) ) =34H =34H , ,( ( 26H 26H ) ) =56H =56H 。。问执行问执行““ RET RET ””指令指令以后, 以后, SP= SP= ? ? PC= PC= ? ? 答: 答: SP=23H, PC=3412H 6. 以下程序段执行后, A=,( 30H )=。 MOV 30H , #0AH MOV A, #0D6H MOV R0, #30H MOV R2, #5EH ANL A, R2 ORL A, @R0 SWAP A CPL A XRL A, #0FEH ORL 30H ,A 答:答: A= E4H( 30H ) =EEH 7. 比较内部 RAM 中 30H 和 40H 单元的二个无符号数的大小, 将大数存入 20H 单元, 小数存入 21H 单元,若二数相等,则使位空间的 7FH 位置 1。答: ORG 0000H LJMP
0100H MAIN : MOV A, 30H CJNE A, 40H , LOOP1 SETB 7FH SJMP LOOP3 LOOP1 : JC LOOP2 MOV 20H ,A MOV 21H , 40H SJMP LOOP3 LOOP2 : MOV 20H , 40H MOV 21H ,A LOOP3: SJMP $ END 8. 设变量 X 存在内部 RAM 的 20H 单元中, 其取值范围为 0-5, 编一查表程序求其平方值, 并将结果存放在内部 RAM 21H 单元。答: ORG 0000H LJMP
1000 H START : MOV DPTR ,# TABLE MOV A ,20 H MOVC A ,@A+ DPTR MOV 21H,A SJMP $ ORG 2000 H TABLE : DB 0,1,4
内容来自淘豆网www.taodocs.com转载请标明出处.
文件大小:0 KB
下载次数:单片机几种不同的寻址方法
查看: 418|
摘要:   1. 立即寻址   例: MOV A , #10H ;将立即数 10H 送给 A 累加器,即 (A) ← 10H   注意:立即数的前面必有 “#” 标志。   2.直接寻址   例: MOV A , 36H ;将内部 RAM 中 36H 单元内的数据   送 ...
  1. 立即寻址   例: MOV A , #10H ;将立即数 10H 送给 A 累加器,即 (A) ← 10H   注意:立即数的前面必有 “#” 标志。   2.直接寻址   例: MOV A , 36H ;将内部 RAM 中 36H 单元内的数据   送到累加器 A 中,即 A ← (36H)   在上面这条指令中,带下划线的操作数是所在存储单元的地址,这种寻址方式称为直接寻址。直接寻址方式中操作数所在存储器的空间有板有 3 种 :   (1) 内部数据存储器的 128 个字节单元 ( 内部数据存储器地址 00H~7FH)   (2) 位地址空间 .   (3) 特殊功能寄存器 , 特殊功能寄存器只能用直接寻址方式进行访问 .   3.寄存器寻址 (Rn)   例: MOV A, R3 ;将通用寄存器 R3 中的数据送给 A ,即 A ← (R3)   在上面这条指令中,带下划线的操作数 ( 源操作数 ) 是当前工作寄存器区   的某个寄存器,这种寻址方式称为寄存器寻址。   比如:   XCH A, R1 ;累加器 A 和寄存器 R1 中的数互换   ADD A, R2 ; 累加器 A 和寄存器 R2 中的数相加   4.间接寻址   例: MOV R0, #30H   MOV A , @R0 ;以 R0 中的内容作为操作数的地址 .A ← ((R0)). 在上面的指令中,带下划线的不是 R0 ,而是以( R0 )为地址,间接找到内部 RAM 中的 30H 单元,将 (30H) 送给 A ,这种寻址方式称为寄存器间接寻址。 可用 R0、R1 和 DPTR 作间址寄存器,访问片内 RAM 或片外 64KB 的 RAM 地址空间。   比如:   MOV DPTR, #0CFA0H ;将十六位地址 CFA0H 赋给数据指针 DPTR   MOVX A, @DPTR ;将片外 RAM ( CFA0H )单元内的数送给 A
  5.基址加变址寻址   例:   MOVC A, @A+DPTR ;将地址为 (A) + (DPTR) 的 ROM  ;单元中的数送给 A   在上面这条指令中,带下划线的操作数是以( DPTR )为基址,( A )为变址,将两者之和作为地址,找出该地址对应的 ROM 单元,再将该单元的数送给 A ,这种寻址方式称为基址加变址寻址方式。 MCS-51 中还有两条变址寻址指令:   MOVC A, @A+PC   MOVC A, @A+DPTR
  6.相对寻址   例:   CJNE A , #80H , BUDENG ;如 (A) ≠ 80H ,跳转到 BUDENG   JNC DAYU ;如 (A) > 80H ,跳转到 DAYU   ……   BUDENG: SETB FLAG0 ;置位标志位 FLAG0   ……   DAYU: SETB FLAG1 ;置位标志位 FLAG1   ……   在上面这个程序片段中,带下划线的操作数指明了程序跳转的目的位置,这个目的位置的 PC 相对于下一条程序语句的 PC 不得超出 -128 ~ +127 字节的范围。
  7.特定寄存器寻址   例:INC A ; 累加器内容加 1.   INC DPTR ; 数据指针 DPTR 的内容加 1.   累加器 A 和数据指针 DPTR 这两个使用最频繁的寄存器又称为特定寄存器 ,   故称特定寄存器寻址 .
上一篇:下一篇:
看过《单片机几种不同的寻址方法》的人还看了以下文章:
Powered by &
这里是—这里可以学习 —这里是。
栏目导航:

我要回帖

更多关于 寻址方式 的文章

 

随机推荐