本帖最后由 bystc 于 2023-9-25 11:41 编辑
第七课 汇编语言进阶 宏编程 1、助记符语言描述 MOV 是数据的传送, ADD 是数据的相加运算,ANL 是数据的逻辑与运算,#8BH,带井号,是立即数
2、操作码 数据传送类:MOV、MOVX、MOVC,指明操作对象从哪来,到哪去
数据操作类:ADD、SUBB、MUL、DIV, 一般靠运算器完成,需要两个操作对象 程序控制类:AJMP(SJMP、LJMP) JZ、JC、JB(JNZ、JNC、JNB) ACALL(LCALL) RET CJNE
逻辑操作类:ANL、ORL、XRL
3、操作数 可以是数据,也可以是地址。数据只能是整数,不能是小数;数据是十六进制且是以字母开头时,该数据应该加一个前导0;数据前有前缀#,则表示数据是立即数,如果没有前缀#,则数据为直接地址 4、指令格式、符号
格式:[标号: ] 操作码助记符 [第一操作数][, 第二操作数][, 第三操作数] [; 注释]
指令常见符号:A:累加器ACC B:寄存器B C:进位借位标志 addr8:8位内部RAM地址。 bit:位地址,内部RAM中的可寻址位和SFR中的可寻址位。 @:间接寻址 5、寻址方式
1、立即寻址 指令中的源操作数是立即数。
2、寄存器寻址 指定寄存器的内容为操作数,对寄存器ACC、B、DPTR和CY寻址时,具体的寄存器已隐含在其操作码中。而对选定的8个工作寄存器R7~R0,则用指令操作码的低3位指明所用的寄存器。
3、直接寻址 指令中包含了操作数的地址。
4、寄存器间接寻址。指定某一个寄存器的内容作为操作数地址,使用时,前面加“@”表示间接寻址。
5、变址寻址 由偏移量寄存器和基址寄存器DPTR或PC相加所得结果作为操作数地址。例:MOVEC A, @A + PC
6、相对寻址。主要用于相对跳转指令。注:该偏移量有正负号,所转移的范围为相对于当前PC值的 -128~+127 之间。
7、位寻址。对位地址空间的每一位进行运算和传送。
上面是七种寻址方式的ppt😊接下来继续学习
|