`
decentway
  • 浏览: 160149 次
  • 性别: Icon_minigender_1
  • 来自: 重庆
社区版块
存档分类
最新评论

lab2000p程序s6.asm

 
阅读更多

程序:

解释:

1,clr Change

??有点疑惑?不是只能clr a,clr c的吗?

2,cjnz a,B,NotEqual

名词解释

  不等转移指令

编辑本段指令格式

  CJNE Rn,#data,rel

3,jc Next

如果CY标志位为1,则跳转到Next处

如果CY标志位为0,则执行下一步。

4,setb Change

置交换标志为1,有个疑惑?为什么Change equ 0,就能表示定义一个位呢?

5,xch a,@r0

a与 ((r0))交换!

6,dec r0

r0内容减1。

7,jb Change,Sort

JB是判断位变量转移指令。  例子:

  JB P1.3,L1 意思就是判断P1.3的值是不是“1” 如果是就跳转到L1程序执行,如果不是就顺序执行下一条指令。

所以说,当Change标志位没有改变时,说明所有的数都是按照顺序排列的,没必要再循环,结束循环。

 

 

知识点:

1,JC指令

JC指令

  CJNE A,#25,NET1的含义,它的含义有三点:

  1.当A等于25时,执行下一句;

  2.当A不等于25时,跳转到NE1语句执行;

  3.要注意当A不等于25时,A必定大于25或者小于25,如果A小于25,则不仅要跳转到NE1执行,还要给CY标志位置一,如果A大于25,则仅仅要跳转到NE1执行,不会给CY标志位置一。

  JC BE的意思是若CY为0,则执行下一句,否则,跳转到BE。

  因此:执行 CJNE A,#25,NE1 后,若A不等于25,则跳转到NE1: JC BE

  若A大于25,C为0,则JC判断后执行下一句,P0就是#0E6H ,若A小于25,则跳转到BE,此时P0就是#09FH。

2,setb

 SETB ET0 ;开定时/计数器0允许 SETB是汇编指令,意思是把其后面的那个寄存器的位置1。 ET0是定时/计数器0的中断容许位,为1时,单片机会响应定时/计数器0的溢出中断(当然,总中断也必须容许)。为0时,单片机不响应。这句意思就是,把ET0置为1。这会导致单片机会响应定时/计数器0的溢出中断SETB TR0 ;定时/计数器0开始运行 TR0是单片机会响应定时/计数器0的启动位,为1,就启动定时/计数器0;为0,就停止定时/计数器0的运行。

3,xch

字节交换指令语法

  XCH是eXCHange的缩写。  XCH A,Rn ;(A)<->(Rn),n=0~7  XCH A,direct ;(A)<->(direct)  XCH A,@Ri ;(A)<->((Ri)),i=0,1

编辑本段功能

  将累加器A的内容和源操作数的内容相互交换。

编辑本段

  (A)=80H,(R7)=08H,(40H)=F0H  (R0)=30H,(30H)=0FH  执行下列指令  XCH A,R7 ;(A)<->(R7)  XCH A,40H ;(A)<->(40H)  XCH A,@R0 ;(A)<->((R0))  结果:(A)=0FH,(R7)=80H,(40H)=08H,(30H)=F0H <!--EndFragment-->

 

<!--EndFragment-->
分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics