ty569
发表于 2023-8-25 21:21:20
跟着何教授学习STC32位单片机第二十集
移位指令:SRA WRj SRL Rm 逻辑右移 SRL WRj 十六位
半子交换指令:SWAP A(*) 7-43-0 交换4位循环指令
数据传送指令: 数据传输指令包括内部数据传输指令,外部数据传输指令,查找表传输指令。
通用传输(MOV) MOV A,Rn(*) MOV A,dir8(*) MOV A,@Ri(*) MOV A,#data(*) MOV RN,A(*) MOV Rn,dir8(*) MOV Rn,#data
MOV dir8,Rn(*) MOV dir8,dir8(*) MOV dir8,@Ri(*) MOV dir8,#data(*) MOV @Ri,A(*) MOV @Ri,#data(*) MOV DPTR,#data16(*)
MOV WRjd,WRjs MOV DRkd,DRks MOV Rm,#data MOV WRj,#data16 MOV DRk,#0data16 MOV DRk,#1data16 MOV DRk,dir8
MOV DRk,dir16 MOV Rm,dir8 MOV WRj,dir8 MOV Rm,dir16 MOV WRj,dir16 MOV Rm,@WRj MOV Rm,@DRk MOV WRjd,@WRjs
MOV WRj,@DRk MOV dir8,Rm MOV dir8,WRj MOV dir16,Rm MOV dir16,WRj MOV @WRj,Rm MOV @DRk,Rm MOV @WRjd,WRjs MOV @DRk,WRj
MOV dir8,DRk MOV dir16,DRk MOV Rm,@WRj+dis16 MOV Rm,@DRk+dis24 MOV @WRj+dis16,Rm MOV @WRjd+dis16,WRjs MOV @DRk+dis24,Rm
MOV @DRk+dis24,WRj
MOVH DRk(hi),#data 16 MOVS WRj,Rm MOVZ WRj,Rm
32位单片机通过何老师一讲,每个指令都是一个时钟就干完活了 ,速度快多了。
ty569
发表于 2023-8-26 21:45:52
跟着何教授学习STC32位单片机第二十一集
代码空间数据传输指令:MOVC A,@A+DPTR(*) MOVC A,@A+PC(*)
外部数据存储器传输指令:MOVX MOVX A,@Ri(*) MOVX A,@DPTR(*) MOVX @Ri,A
堆栈指令:压栈PUSH PUSH dir8 (*) PUSH #data16 PUSH Rm PUSH WRj PUSH DRk
出栈:POP POP DRk POP WRj POP Rm POP dir8(*) POP
数据交换指令:XCH A,dir8(*) xch a,@ri XCHD A,@Ri(*)
清除指令:CLR CY(*)
置位指令:SETB CY(*)
取反指令:CPL bit
逻辑与指令 ANL CY,bit
调用指令:ACALL addr11(*) 绝对调用 ECALL @DRk ECALL addr24 LCALL @WRj LCALL addr16(*)
返回指令:RET(*) ERET(*) RETI(*)中断返回
ty569
发表于 2023-8-28 21:14:06
跟着何教授学习STC32位单片机第二十二集
无条件跳转指令:AJMP addr11(*)
绝对跳转:EJMP EJMP addr24 EJMP @DRk
长跳转:LJMP LJMP @WRj LJMP addr16 (*)
短跳转:SJMP rel
间接跳转:JMP @A+DPTR(*)
条件跳转指令:进位标志CY控制的跳转指令:JC rel (*) JNC rel (*) JB bit51,rel(*) JB bit,rel
ty569
发表于 2023-8-30 20:53:55
跟着何教授学习STC32位单片机第二十三集
指定位置位跳转后清零:JBC bit51,rel(*) JBC bit,rel JZ rel(*) JE rel 相等,则跳转。 JNE rel 不相等,跳转 JG rel大于,跳转
JLE rel小于或等于,跳转 JSL rel小于,跳转(带符号) JSGE rel大于或等于,跳转带符号 JSG rel大于,跳转带符号
CJNE A,dir8,rel(*) CJNE A,#data,rel(*) CJNE @Ri,#data,rel(*)
递减跳转指令:DJNZ
DJNZ Rn,rel(*) DJNZ dir8,rel(*)
空操作指令:NOP(*) TRAP
ty569
发表于 2023-8-31 21:36:30
跟着何教授学习STC32位单片机第二十四集
汇编语言程序结构和段分配
code edata xdata myvars SEGMENT HDATA
注释必须分号;开头。
ty569
发表于 2023-9-1 20:59:16
跟着何教授学习STC32位单片机第二十五集
SEGMENT 声明一个通用的段,RSEG,重定位的段。跟着何老师写了c语言代码,汇编语言代码,不太明白意思,先跟着学。慢慢了解。感谢何老师精彩教学。
ty569
发表于 2023-9-2 20:14:10
跟着何教授学习STC32位单片机第二十六集
寄存器:R0-R7 AR0-AR7 R8-R15 WR0-WR30 DR0-DR28 DR56 DR60
字符串:
位置计数器:$
ty569
发表于 2023-9-2 21:09:57
跟着何教授学习STC32位单片机第二十七集
地址控制:ALIGN EVEN:强制计数器指向下一个偶数。 ORG:更改当前短的位置计数器,并为后续语句设置新的原点。
USING
DD语句使用一个或多个32位双子值初始化
DW一个或多个字值两个字节
DBIT:在bit段或ebit段中保留指定个数的位数
DS:
DSB:
DSD:
DSW:
PROC和ENDP:
EXTRN/EXTERN:
ISEG:
RSEG:
ty569
发表于 2023-9-3 09:14:55
跟着何教授学习STC32位单片机第二十八集
条件汇编:$IF,$ELSEIF,$ELSE,$ENDIF,IF,ELSEIF,ELSE,ENDIF,$SET,$RESET
宏的定义和调用:1,频繁使用宏,可以减少程序员引起的错误。
ty569
发表于 2023-9-4 20:28:31
跟着何教授学习STC32位单片机第二十九集
I/0端口寄存器。
P6端口模式寄存器,触发器00:准双向 01:推挽输出 10:高阻输出 11:开漏输出
P4端口模式寄存器:SFR地址0XB4 0XB3