第三章 计算机指令系统
3-1 指令格式
3-2 指令寻址方式
3-3 MCS-51指令系统
整理课件
一. 汇编语言指令格式
[标号:]操作码 操作数1,操作数2[;注释]
换行表示一条指令结束。
数据传送。
五. 查表指令: 程序存储器数据传送。
整理课件
一、内部传送指令:实现片内数据存储器中数据传送。指令格式: MOV 目的操作数,源操作数 寻址方式:立即寻址、直接寻址、寄存器寻址、寄存器间址。
MOV A,Rn ;A←Rn,Rn=R0~R7 MOV A,direct ;A←(direct),MOV A, ***@Ri ;A ←(Ri) ,Ri=R0、R1MOV A, #data ; A ←d,
第一条指令中,Rn代表的是R0-R7。第二条指令中,direct就是指的直接地址,而第三条指令中,就是我们刚才讲过的。第四条指令是将立即数data送到A中
下面我们通过一些例子加以说明:
MOV A,R1 ;将工作寄存器R1中的值送入A,R1中的值保持不变。
MOV A,30H ;将内存30H单元中的值送入A,30H单元中的值保持不变。
MOV A,***@R1 ;先看R1中是什么值,把这个值作为地址,并将这个地址单元中的值送入
A中。如执行命令前R1中的值为20H,则是将20H单元中的值送入A中。
MOV A,#34H ;将立即数34H送入A中,执行完本条指令后,A中的值是34H。
1) 以累加器为目的操作数的指令
整理课件
MOV Rn, direct ;Rn ←(n)
MOV Rn, #data ; Rn ←data
MOV Rn, A ; Rn ←(A)
2)以寄存器Rn为目的操作的指令
这组指令功能是把源地址单元中的内容送入工作寄存器,源操作数不变。
整理课件
MOV direct,Rn ;direct←Rn
MOV direct, A ;
MOV direct, ***@Ri ;
MOV direct, #data ;
MOV direct, direct2 ;
例:
MOV 20H,R1
MOV 20H,A
MOV 20H,30H
MOV 20H,***@R1
MOV 20H,#34H
(3)以直接地址为目的操作数的指令
整理课件
MOV ***@Ri, A; (Ri)←(A),
将A值送入Ri指示的地址单元中。
MOV ***@Ri,direct; (Ri)←(direct) ,
将direct值送入Ri指示的地址单元中。
MOV ***@Ri, #data; (Ri)←data ,
将常数#data直接送入Ri指示的地址单元中。
例:
MOV ***@R0,A
MOV ***@R1,20H
MOV ***@R0,#34H
(4)以间接地址为目的操作数的指令
整理课件
8051是一种8位机,这是唯一的一条16位立即数传递指令,其功能是将一个16位的立即数送入DPTR中去。其中高8位送入DPH,低8位送入DPL。例:MOV DPTR,#1234H,则执行完了之后DPH中的值为12H,DPL中的值为34H。反之,如果我们分别向DPH,DPL送数,则结果也一样。如有下面两条指令:MOV DPH,#35H,MOV DPL,#12H。则就相当于执行了MOV DPTR,#3512H。
(5)十六位数的传递指令
MOV DPTR,#data16
整理课件
例3-2-1:顺序执行下列指令序列,求每一步执行结果。
MOV A,#30H
MOV 4FH,A
MOV R0,#20H
MOV ***@R0,4FH
MOV 21H,20H
习题1:用两种寻址方式实现,将片内RAM 60H单元的数据传送给累加器A。
解: MOV A,#60H
MOV R0,#60H MOV A,***@R0
;A= 30H
;(4FH)= 30H
;R0= 20H
;(20H)= 30H
;(21H)= 30H
MOV R0,60H MOV A,***@R0
解: MOV A,60H
A=60H
A=32H
A=58H
A=32H
整理课件
习题2:综合练习:
给出每条指令执行后的结果
说明:用括号括起来代表内容,如(23H)则代表内部RAM23H单元中的值,(A)则代表累加器A单元中的值。
MOV 23H,#30H
MOV 12H,#34H
MOV R0,#23H
MOV R7,#22H
MOV R1,12H
MOV A,***@R0
MOV 34H,R1
MOV
计算机指令系统 来自淘豆网m.daumloan.com转载请标明出处.