- 1、本文档共81页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
第三章 计算机指令系统; 3-1.汇编语言格式: ;举例:
汇编语言: 机器语言:
MOV A,R0 E8H
MOV R6,#32H 7E 32H
MOV 40H,#100H 75 40 64H;指令中用到的符号:
Rn——R0~R7;当前选定工作寄存器组的R0~R7工作寄存器(n=0~7)
Ri——R0,R1; 用于@Ri以工作寄存器R0或R1作间接寻址寄存器(i=0,1), 以间接寻址内部RAM(0~255)单元。
Direct——8位直接地址;直接寻址方式时,用以表示内部RAM或特殊功能 寄存器的直接地址。
#data——8位立即数;指令中出现的8位立即常数。
;#data16——16位立即数;指令中出现的16位立即常数。
Addr16——16位地址;供LCALL或LJMP指令使用,可转向或调用64KB外部程序存储器地址空间的任何单元。
Addrll——低11位地址,(与48系列兼容),高5位地址与下一条指令重合;低ACALL和AJMP指令使用,使程序转向或调用包含下一条指令的第一个字节在内的2K字节范围内程序存储器地址空间。;Bit ——8位直接位地址;内部数据存贮器RAM或特殊功能寄存器内的直接寻址位。
@ ——间接寻址的前缀。
/ ——位取反。
(x) ——x中的内容。
((x))——由x寻址的单元的内容;表示间接寻址的内容。
←或→ ——表示数据传送方向,左(或右)边的内容被右(或左)边的内容取代。
?——表示数据交换。 ;数据形式 ;3-2 指令寻址方式;二.直接寻址方式;设指令执行前 A=20H,R0=40H, 执行指令后,A= ?,R0= ?;
例: MOV A,@R0 ;A?(R0)
设指令执行前 A=20H,R0=40H,地址为40H存储器单元内容如图所示。执行指令后,
A= ? ,R0 = ? , (40H)= ?;数据在存储器中,指令给出的寄存器中为数据的基地址和偏移量。A做变址寄存器,DPTR,PC做基址寄存器,;六.位寻址方式(直接寻址的20H-2FH,特殊寄存器中能被8整除的各位)(P37)
指令给出位地址。一位数据在存储器位寻址区。
例: MOV C,40H ;Cy?(位地址40H)
设指令执行前 Cy=1,执行指令后,Cy= ?
1.可以用单元地址加序列号表示如:25H.5
2.用位名称表示,特殊寄存器可位寻址的有位名称如:RS0表示PSW中的D3,即D0H.3
3.对特殊功能寄存器可用寄存器符号加序号如:PSW.3;3-4 MCS-51指令系统分析;(一)内部传送指令:实现片内数据存储器中数据传送。(P37) ;1.以累加器A为目的操作数的指令 ;2.以Rn为目的操作数的指令 ;3.以直接地址为目的操作数 ;4.以寄存器间址的单元为目的操作数 ;5. 16位数据传递指令 ;6.栈操作指令 ;例:设 A=02,B=56H,执行下列指令后,SP= ?,A= ? ,B= ?;例3-4-1:顺序执行下列指令序列,求每一步执行结果。;说明:;机器周期的估算见(P40)
字节数的估算:见(P40);(二) 外部传送指令(P40) 实现片外数据存储器和A累加器之间的数据传送。 ;例3-4-2:实现片外数据存储器数据传送(2000H)?(2100H)。;注意:
①该组指令是CPU访问外部数据存贮器或I/O的唯一指令。
②用DPTR或Ri间接寻址可指向外部数据RAM相同区域,只是DPTR为16位数据指针,而Ri为8位。;实现从程序存储器读取数据到A累加器,只能使用变址间接寻址方式。;例:查表法求Y=X2。设X(0≤X≤15)在片内RAM的20H单元中,要求将查表求Y,存入片内RAM21H单元。;2)指令地址 源程序
ORG 1000H ;程序起始地址
1000H SQU: MOV DPTR,#3000H;确定表首地址
1002H MOV A,20H ;取X
1004H ADD A,#3 ;修正偏移量
1006H MOVC A,@A+PC ;查表求Y=X2
1007H MOV 21H,A ;存结果
1009H RET ;子程序结束
3000H TAB: DB 00,01,04 ;平方表 3003H DB 09,…,225 ;(三) 交换指令(P42) 实现片内RAM区和累加器间的数据双向传送。;2. 半字节交换指令;习题:找出指令错误并改正:;3-4-2 算术运算指(P4
文档评论(0)