请问大神单片机中的地址单片机0xff是什么意思思 什么叫位寻址和字寻址 什么叫包含8B的工作寄存器

& & & 大多数指令在执行时,都需要使用操作数。寻址方式就是在指令中说明操作数所在地址的方法。一般来说,寻址方式越多,的功能就越强,灵活性则越大,指令系统也就越复杂。寻址方式所要解决的主要问题就是如何在整个和寄存器的寻址空间内,灵活方便、快速地找到指定的地址单元。AT89S51单片机的指令系统有7种寻址方式,下面分别予以介绍。    1.寄存器寻址方式    寄存器寻址方式,就是指令中的操作数为某一寄存器的内容。    例如指令:    是把Rn中的源操作数送入到累加器A中。由于在指令中指定了从寄存器Rn中取得源操作数,所以称为寄存器寻址方式。    寄存器寻址方式的寻址范围包括:    (1)4组通用工作寄存区共32个工作寄存器。但只对当前工作寄存器区的8个工作寄存器寻址,因此指令中的寄存器名称只能是RO~R7。    (2)部分特殊功能寄存器,如累加器A、寄存器B以及数据指针寄存器DPTR等。    2.直接寻址方式    在这种寻址方式中,指令中直接给出操作数的单元地址,该单元地址中的内容就是操作数,直接的操作数单元地址用&direct&表示。例如某一直接寻址方式指令:    指令中的&direct&就是操作数的单元地址,例如:    表示把内部RAM 40H单元(direct)的内容传送到A。指令中源操作数(右边的操作数)采用的是直接寻址方式。    指令中的两个操作数都可由直接寻址方式给出,例如指令:    其具体指令:    表示把片内RAM中62H单元的内容送到片内RAM中的42H单元中。    直接寻址方式是对片内所有特殊功能寄存器访问的唯一寻址方式,也是访问内部RAM的128个单元的一种寻址方式。    3.寄存器间接寻址方式    前述的寄存器寻址方式在寄存器中存放的是操作数,而寄存器间接寻址方式在寄存器中存放的是操作数的地址,即先从寄存器中找到操作数的地址,再按该地址找到操作数。由于操作数是通过寄存器间接得到的,因此称为寄存器间接寻址。    为了区别寄存器寻址和寄存器间接寻址,在寄存器间接寻址方式中,应在寄存器名称前面加前缀标志&@&。例如指令:    其中,Ri中的内容为40H,即从R/中找到源操作数所在单元的地址40H,然后把内部RAM40H地址单元中的内容传送给A。    4.立即数寻址方式    立即数寻址方式就是直接在指令中给出操作数。出现在指令中的操作数也称立即数。为了与直接寻址指令中的直接地址加以区别,需在操作数前面加前缀标志&#&。例如指令:    表示把立即数40H送给A,40H这个常数是指令代码的一部分。采用立即数寻址方式的指令是双字节的。第一个字节是操作码,第二字节是立即数。因此,立即数就是放在程序存储器内的常数。    5.基址寄存器加变址寄存器间址寻址方式    这种寻址方式是以DPTR或PC作为基址寄存器,以累加器A作为变址寄存器,并以两者内容相加形成的16位地址作为目的地址进行寻址的方式。例如指令:    其中,A的原有内容为05H,DPTR的内容为0400H。该指令执行的结果是把程序存储器0405H单元的内容传送给A。    本寻址方式的指令只有3条:    前两条指令适用于读程序存储器中固定的数据。例如,将固定的且按一定顺序排列的表格参数存放在程序存储器中,在程序运行中由A的动态参量来确定读取对应的表格参数。    第3条指令为散转指令,A中的内容为程序运行后的动态结果,执行该指令,可根据A中的不同内容,来实现跳向不同程序入口的跳转。    6.相对寻址方式    相对寻址方式是为解决程序转移而专门设置的,为转移指令所采用。    相对寻址是以该转移指令的地址(PC值)加上它的字节数,再加上相对偏移量(rel),形成新的转移目的地址,从而程序转移到该目的地址。转移的目的地址可用下式来计算:    目的地址=转移指令所在的地址+转移指令字节数+rel    其中,偏移量rel是单字节的带符号的8位数补码数。它所能表示的数的范围是-128~+127。因此,程序的转移范围是以转移指令的下条指令首地址为基准地址,相对偏移在-128~+127单元之间。    例如,跳转指令:    在执行时,程序要转移到该指令的PC值加3再加上rel的目的地址处。其中,3为本跳转指令的字节数,rel为8位带符号的补码。    用户在编写程序时,只需在转移指令中直接写上要转向的地址标号就可以了。例如:    LOOP即为要转向的目的地址标号。程序汇编时,由汇编程序自动计算和填入偏移量。但是手工汇编时,偏移量的值需编程人员手工计算。    7.位寻址方式    位寻址是指对内部RAM和特殊功能寄存器具有位寻址功能的某位内容进行置1和清0操作。位地址一般以直接位地址给出,位地址符号为&bit&。例如指令:    其某一具体指令:    该指令的功能就是把位地址为40H的值送到进位位C。    由于AT89S51具有位处理功能,可直接对数据位方便地实现置l、清O、求反、传送、判跳和逻辑运算等操作,为测控系统的应用提供了最佳代码和速度,大大增强了实时性。    至此7种寻址方式已介绍完毕,但是存在一个问题:当一条指令给定后,如何来确定该指令的寻址方式?例如指令:MOV A,#40H,它究竟是属于立即数寻址还是寄存器寻址?这要看以哪个操作数作为参照系了。因为操作数可分为源操作数(右边的操作数)和目的操作数(左边的操作数)。对于源操作数&#40H&来说,是立即数寻址方式,但对目的操作数&A&来说,是寄存器寻址方式。一般而言,寻址方式指的是源操作数,所以此例为立即数寻址方式。    AT89S51指令系统的7种寻址方式总结见表3-1。    表3-1 7种寻址方式及其寻址空间
&&&&&往下看有更多相关资料
试试再找找您想看的资料
资料搜索:
查看相关资料 & & &
   同意评论声明
   发表
尊重网上道德,遵守中华人民共和国的各项有关法律法规
承担一切因您的行为而直接或间接导致的民事或刑事法律责任
本站管理人员有权保留或删除其管辖留言中的任意内容
本站有权在网站内转载或引用您的评论
参与本评论即表明您已经阅读并接受上述条款
copyright & &广电电器(中国梧州) -all right reserved& 若您有什么意见或建议请mail: & &
地址: 电话:(86)774-2826670& & &&)豆丁微信公众号
君,已阅读到文档的结尾了呢~~
单片机教案(中职打印)(可编辑)
扫扫二维码,随身浏览文档
手机或平板扫扫即可继续访问
单片机教案(中职打印)(可编辑)
举报该文档为侵权文档。
举报该文档含有违规或不良信息。
反馈该文档无法正常浏览。
举报该文档为重复文档。
推荐理由:
将文档分享至:
分享完整地址
文档地址:
粘贴到BBS或博客
flash地址:
支持嵌入FLASH地址的网站使用
html代码:
&embed src='http://www.docin.com/DocinViewer-4.swf' width='100%' height='600' type=application/x-shockwave-flash ALLOWFULLSCREEN='true' ALLOWSCRIPTACCESS='always'&&/embed&
450px*300px480px*400px650px*490px
支持嵌入HTML代码的网站使用
您的内容已经提交成功
您所提交的内容需要审核后才能发布,请您等待!
3秒自动关闭窗口按字节寻址和按位寻址有什么区别呢?
[问题点数:50分,结帖人inrie]
按字节寻址和按位寻址有什么区别呢?
[问题点数:50分,结帖人inrie]
不显示删除回复
显示所有回复
显示星级回复
显示得分回复
只显示楼主
匿名用户不能发表回复!|80C51单片机指令系统的7种寻址方式
查看: 4669|
摘要: 寻址方式就是寻找操作数或指令地址的方式。寻址方式包含两方面的内容:一是操作数的寻址,二是指令地址的寻址(如转移指令、调用指令)。寻址方式是计算机性能的具体体现,也是编写汇编语言程序的基础,必须非常熟悉并灵活运用。 对 ...
寻址方式就是寻找操作数或指令地址的方式。寻址方式包含两方面的内容:一是操作数的寻址,二是指令地址的寻址(如转移指令、调用指令)。寻址方式是计算机性能的具体体现,也是编写程序的基础,必须非常熟悉并灵活运用。 对于两操作数指令,源操作数有寻址方式,目的操作数也有寻址方式。若不特别声明,后面提到的寻址方式均指源操作数的寻址方式。 80C51指令系统共有7种寻址方式,包括:立即寻址、寄存器寻址、直接寻址、寄存器间接寻址、变址寻址、相对寻址和位寻址。现以7条指令为例说明这7种寻址方式。
(1)立即寻址:将操作数直接写在指令中。 如指令①: MOV& A,#3AH& 执行的操作是将立即数3AH送到累加器A中,因为指令中有立即数3AH,所以称此寻址方式为立即寻址。注意,立即数前面必须加“#”号,以区别立即数和直接寻址。该指令的执行过程如图1所示。
图1 立即数寻址示意图 (2)寄存器寻址:是指将指令操作数存放于寄存器中,寄存器包括工作寄存器R0~R7、累加器A、通用寄存器B、地址寄存器DPTR等。 如指令②: MOV& A,R0&&& ;(A)←(R0) 该指令将寄存器R0中的数送入累加器A中,因为指令源操作数为寄存器R0,所以称此寻址方式为寄存器寻址。 如果程序状态寄存器PSW的RS1RS0=00(选中第0组工作寄存器,对应地址为(00H~07H),设RAM区00H的内容为20H,则执行MOV A,R0指令后,累加器A中的内容变为20H。该指令执行过程如图2所示。
图2 寄存器寻址示意图(3)直接寻址 :是指把存放操作数的内存单元的地址直接写在指令中。在80C51单片机中可以直接寻址的存储器主要有内部RAM区和特殊功能寄存器SFR区。 &如指令③:MOV& A,30H&&& ;(A)←(30H) 该指令将地址为30H的存储单元的内容送入累加器A,因为指令源操作数为地址直接给出的存储单元,故称此寻址方式为直接寻址。若(30H)=3AH,指令③执行后,(A)=3AH,该指令的执行过程如图3所示。&
&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&& 图3 直接寻址示意图 (4)寄存器间接寻址:将存放操作数的存储单元的地址放在寄存器中,指令中只给出该寄存器。执行指令时,首先根据寄存器的内容,找到所需要的操作数地址,再由该地址找到操作数并完成相应操作。在80C51指令系统中,用于寄存器间接寻址的寄存器有R0、R1和DPTR,称为寄存器间接寻址寄存器。 注意:间接寻址寄存器前面必须加上符号“@”。 如指令④:MOV& A,@R0& ;(A)←((R0)) 该指令将以R0中内容为地址的存储单元的内容送入累加器A中,因为指令操作数是存储单元,其地址由寄存器R0间接给出,所以称此寻址方式为寄存器间接寻址。 设R0=3AH,内部RAM 3AH中的值是65H,则指令MOV& A,@R0的执行结果是累加器A的值为65H,该指令的执行过程如图4所示。
图4 寄存器间接寻址示意图(5)变址寻址 :是指将基址寄存器与变址寄存器的内容相加,结果作为操作数的地址。DPTR或PC是基址寄存器,累加器A是变址寄存器。这种寻址方式称为变址寻址。该寻址方式主要用于查表操作。 当执行指令⑤时,设(A)=50H ,(DPTR)=2007H,(2057H)=60H ,指令⑤执行后MOVC A,@A+DPTR ;(A)←((A)+(DPTR))=(50H+2007H)=(2057H)=60H。 该指令将DPTR中的基地址2007H与A中的偏移地址50H相加,形成实际地址2057H,再将地址为2057H的存储单元中的内容60H送入累加器A中。显然这种寻址方式称为变址寻址。该指令执行过程如图5所示。
图5 变址寻址示意图 (6)相对寻址 :是指程序计数器PC的当前内容与指令中的操作数相加,其结果作为跳转指令的转移地址(也称目的地址)。这种寻址方式称为相对寻址。该类寻址方式主要用于跳转指令。 如指令⑥:SJMP rel&&& ;(PC)←(PC)+rel 当执行指令⑥时,设当前(PC)=2009H,而相对偏移量rel=02H,则执行该指令后,(PC)=0BH,即程序由地址为2009H处跳转到200BH处执行,其跳转的距离为相对偏移量rel=02H。由于指令中的操作数为相对偏移量rel ,所以称这种寻址方式为相对寻址。该指令的执行过程如图6所示。
图6 相对寻址示意图 (7)位寻址 :指令中操作数为8位二进制数某一位,称为位寻址。80C51单片机中,操作数不仅可以按字节为单位进行操作,也可以按位进行操作。当我们把某一位作为操作数时,这个操作数的地址称为位地址。 位寻址区包括专门安排在内部RAM中的两个区域:一是内部RAM的位寻址区,地址范围是20H~2FH,共16个RAM单元,位地址为00H~7FH;二是特殊功能寄存器SFR中有11个寄存器可以位寻址。参见位地址的定义。 例如:SETB& ACC.0& ;(ACC.0)←1& 该指令将累加器的最低位ACC.0置1,由于指令中的操作数为一位二进数,故称此寻址方式为位寻址。该指令的执行过程如图7所示。&
& 图7 位寻址示意图 由寻址方式的讨论可知,操作数按类型可分为:立即数、寄存器、存储单元、位操作数、相对偏移量。而存储单元地址又可有直接寻址,寄存器间接寻址,变址寻址三种。 各种寻址方式对应操作数的指令符号规定如下。 (1)#data:表示8位立即数,如#3AH。 (2)#data16:表示16位立即数,即0000H~FFFFH。 (2)Rn:表示寄存器R0~R7。 (3)direct:表示片内存储单元的直接地址, 如30H。 (4)addr16,addr11:表示指令中的16位或11位转移地址。 (5)rel:表示相对偏移量,如 02H。 (6)bit:表示位地址,如ACC.0。 (7)(&& ):表示存储单元的内容,如(30H)=40H。 &&& (8)((& )):表示间接寻址的存储单元内容,((R0))=(7FH)=50H。
上一篇:下一篇:
看过《80C51单片机指令系统的7种寻址方式》的人还看了以下文章:
Powered by &
这里是—这里可以学习 —这里是。
栏目导航:}

我要回帖

更多关于 单片机0xfe是什么意思 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信