MCS-51单片机指令系统(4)

2023-03-24 23:30   245   0  

某些指令说明


-“读引脚”和“读锁存器”指令的区别


  1. 关于并行I/O口的“读引脚”和“读锁存器”指令的区别


04048280-ac51-11ed-bcd2-b8ca3a6cb5c4.jpg


例如,当P1口的P1.0引脚外接一个发光二极管LED的阳极,LED的阴极接地。


若想查看一下单片机刚才向P1.x脚输出的信息是“0”还是“1”,如果直接读引脚,结果显然错误。


04048281-ac51-11ed-bcd2-b8ca3a6cb5c4.jpg


-“读引脚”和“读锁存器”指令的区别


正确做法是读D锁存器的Q端状态,那里储存的才是前一时刻送给P1.0的真实值。就是说,凡遇“读取P1口前一状态以便修改后再送出”的情形,都应当“读锁存器”的Q端信息,而不是读取引脚的信息。




当P1口外接输入设备时,要想P1口引脚上反映真实的输入信号,必须要 设法先让该引脚内部的场效应管截止才行,否则当场效应管导通时,P1口引 脚上将永远为低电平,无法正确反映外设的输入信号。让场效应管截止,就是用指令给P1口的相应位送一个“1”电平,这就是为什么读引脚之前,一 定要先送出“1”的原因。




-“读引脚”和“读锁存器”指令的区别


指令“MOV C,P1.0”读的是P1.0脚,同样,指令“MOV A,P1”也是读引脚指令,读引脚指令之前一定要有向P1.0写“1”的指令。而指令“CPL P1.0”则是“读锁存器”,也即“读-修改-写”指令,它会先读P1.0的锁存器的Q端状态,接着取反,然后再送到P1.0引脚上。而指令“ANL P1,A” 也是“读锁存器”命令。类似的“读-修改-写”指令举例如下:


INC P1


XRL P3,A


ORL P2,A


ANL P1,A


CPL P3.0


- 操作数的字节地址和位地址的区分问题


关于操作数的字节地址和位地址的区分问题


如何区别指令中出现的字节变量和位变量?


例如指令“MOV C,40H”和指令“MOV A,40H”两条指令中源操作数“40H”都是以直接地址形式给出的,“40H” 是字节地址还是位地址?对于助记符相同指令,观察操作数就可看出。显然前条指令中的“40H”肯定是位地址,因为目的操作数C是位变量。后条指令的“40H” 是字节地址,因为目的操作数A是字节变量。




- 累加器A与Acc的书写问题


  1. 关于累加器A与Acc的书写问题


累加器可写成A,或Acc,区别是什么?


Acc汇编后的机器码必有一个字节的操作数是累加器的字节地址E0H,A 汇编后则隐含在指令操作码中。例如: “INC A” 的机器码,查指令表是04H。如写成“INC Acc”后,则成了“INC direct”的格式,再查指令表,对应的机器码为“05H E0H”。




- 累加器A与Acc的书写问题


  1. 关于累加器A与Acc的书写问题


在对累加器A的直接寻址和累加器A的某一位寻址要用Acc,不能写成A。例如:


指令“POP Acc”不能写成“POP A”;


指令“SETB Acc.0”,不能写成“SETB A.0”。


- 书写两位16进制数据前要加“0"


  1. 书写两位16进制数据前要加“0”


经常遇到必须在某些数据或地址的前面多填一个“前导”0,否则汇编就通不过?这是汇编语言的严格性和规范性的体现。由于部分十六进制数是用字母来表示的,而程序内的标号也常用字母表示,为将标号和数据区分开,几乎所有的汇编语言都规定:凡是以字母开头(对十六进制数而言,就是A~F开头)的数字量,应当在前面添加一个数字“0”。至于地址量,它也是数据量的一种,前面也应该添加“0”。


例如:


MOV A,#0F0H ;“F0”以字母开头的数据量


MOV A,0F0H ;“F0”以字母开头的地址量


如不加“前导”0,就会把字母开头的数据量当作标号来处理,从而出错以及不能通过汇编。指令系统汇总


  • 指令条数多,不宜死记硬背,应在程序的编写中,多加练习,在实践中不断掌握和巩固常用的指令。

  • 下表为按功能排列的全部的指令助记符及功能简要说明,以及指令长度、执行时间和指令代码(机器代码)。读者应该熟练地查阅下表,正确理解指令的功能及特性,正确地使用指令。


04048282-ac51-11ed-bcd2-b8ca3a6cb5c4.webp04d5500c-ac51-11ed-bcd2-b8ca3a6cb5c4.webp04d5500d-ac51-11ed-bcd2-b8ca3a6cb5c4.webp04d5500e-ac51-11ed-bcd2-b8ca3a6cb5c4.webp04d5500f-ac51-11ed-bcd2-b8ca3a6cb5c4.webp04d55010-ac51-11ed-bcd2-b8ca3a6cb5c4.webp04d55011-ac51-11ed-bcd2-b8ca3a6cb5c4.webp




登录icspec成功后,会自动跳转查看全文
博客评论
还没有人评论,赶紧抢个沙发~
发表评论
说明:请文明发言,共建和谐网络,您的个人信息不会被公开显示。