2017-2018-1 学号20155329 《信息安全系统设计基础》第5周学习总结
2017-2018-1 学号20155329 《信息安全系统设计基础》第5周学习总结
教材学习内容总结
-本在学习过程中,发现自己的汇编知识并不扎实,而本学期学习内容和汇编息息相关,所以复习了一下汇编知识。
- 汇编结束伪指令
END
寻址方式
MCS-51单片机有五种寻址方式:
- 寄存器寻址
- 寄存器间接寻址
- 直接寻址
- 立即数寻址
- 、基寄存器加变址寄存器间接寻址
- 、相对寻址
- 位寻址
数据传送指令
一、以累加器A为目的操作数的指令(4条)
- MOV A,Rn ;(Rn)→A n=0~7
. 4. MOV A,#data ; data →A
二、以Rn为目的操作数的指令(3条) - MOV Rn ,A ;(A)→ Rn
- MOV Rn ,direct ;( direct )→ Rn
MOV Rn ,#data ; data → Rn
三、以直接寻址的单元为目的操作数的指令
- MOV direct,A ;(A)→direct
- MOV direct,Rn ;(Rn)→direct
- MOV direct,direct ;(源direct)→目的direct
- MOV direct,@Ri ;((Ri))→direct
- MOV direct,#data ; data→direct
四、以寄存器间接寻址的单元为目的操作数的指令
- MOV @Ri,A ;(A)→(Ri)
- MOV @Ri,direct ;(direct)→(Ri)
- MOV @Ri,#data ; data→ (Ri)
五、十六位数据传送指令
- MOV DPTR,#data16 ;dataH→DPH,dataL →DPL
六、堆栈操作指令
- 进栈指令
PUSH direct ;(SP)+1 → SP ,(direct) → SP - 退栈指令
POP direct
七、字节交换指令(5条)
- XCH A,Rn ;(A)→ß(Rn)
- XCH A,direct ;(A)→ß(direct)
- XCH A,@Ri ;(A)→ß((Ri))•
八、半字节交换指令
- XCHD A,@Ri ;(A)0~3→ß((Ri)) 0~3
九、加器A与外部数据存贮器传送指令
- MOVX A,@DPTR ; ((DPTR))→A
- MOVX A,@ Ri ; ((Ri))→A i=0,1
- MOVX @ DPTR ,A ; (A)→( DPTR)
- MOVX @ Ri , A ; (A)→(Ri) i=0,1
十、查表指令
- MOVC A ,@ A+PC ;((A)+(PC))→A
- MOVC A , @A+ DPTR ;((A)+(DPTR))
算术运算指令
一、不带进位的加法指令(4条)
- ADD A,Rn ;(A)+(Rn)→A
- ADD A,direct ;(A)+(direct)→A
- ADD A,@Ri ;(A)+((Ri))→A
- ADD A,#data ;(A)+#data→A
二、带进位加法指令)
- ADDC A,Rn ;(A)+(Rn)+CY→A
- ADDC A,direct ;(A)+(direct) +CY →A
- ADDC A,@Ri ;(A)+((Ri)) +CY →A
- ADDC A,#data ;(A)+ #data +CY →A
三、增量指令
- INC A ;(A)+1 →A
- INC Rn ;(Rn)+1 → Rn
- INC direct ;(direct)+1 → direct
- INC @Ri ;((Ri))+1 →(Ri)
- INC DPTR ;(DPTR)+1 →DPTR
四、十进制调整指令
- DA A
减法指令
一、带进位减法指令
- SUBB A,Rn
- SUBB A,direct
- SUBB A,@Ri
- SUBB A,#data
二、减1指令(4条)
- DEC A
- DEC Rn
- DEC direct
- DEC @Ri
乘法指令
- MUL AB
除法指令
- DIV AB
逻辑运算指令
累加器A的逻辑操作指令
一、累加器A清0
CLR A
二、累加器A取反
CPL A
三、左环移指令
RL A
四、带进位左环移指令
RLC A
五、右环移指令
RR A
六、带进位右环移指令
RRC A
七、累加器ACC半字节交换指令
SWAP A
两个操作数的逻辑操作指令
逻辑与指令
- ANL A,Rn
- ANL A,direct
- ANL A, @Ri
- ANL A,#data
- ANL direct ,A
- ANL direct,#data
逻辑或指令
- ORL A,Rn
- ORL A,direct
- ORL A, @Ri
- ORL A,#data
- ORL direct,A
- ORL direct,#data
逻辑异或指令
- XRL A,Rn
- XRL A,direct
- XRL A,@Ri
- XRL A,#data
- XRL direct,A
- XRL direct,#data
位操作指令
位变量传送指令
- MOV C,bit
- MOV bit,C
位变量修改指令
- CLR C
- CLR bit
- CPL C
- CPL bit
- SETB C
- SETB bit
位变量逻辑与指令
- ANL C,bit
- ANL C,/bit
位变量逻辑或指令
- ORL C,bit
- ORL C,/bit
控制转移指令
无条件转移指令
- 短跳转指令
AJMP addr11 ;先(PC)+2→PC ;addr11→PC10~0 ,(PC15~11) - 跳转指令
LJMP addr16 ;Addr16→PC - 转移指令
- SJMP rel ;先(PC)+2→PC;后(PC)+rel→PC
4、 寄存器加变址存器间接转移指令(散转指令)
JMP @A+DPTR ;(A)+(DPTR)→PC
条件转移指令(8条)
一、测试条件符合转移指令
- JZ rel ; 当A=0 时,(PC)+rel→(PC)转移;当A≠0时,顺序执行。
- JNZ rel ; 当A≠0 时,(PC)+rel→(PC)转移;当A=0时,顺序执行。
- JC rel 如果进位标志CY为1,则执行转移;
- JNC rel 如果进位标志CY为0,则执行转移;
- JB bit, rel 如果直接寻址位的值为1,则执行转移;
- JNB bit , rel 如果直接寻址位的值为0,则执行转移;
- JBC bit , rel 如果直接寻址位的值为1,则执行转移;然后清“0”直接寻址位(bit)。
二、比较不相等转移指令
- CJNE (目的操作数),(源操作数),rel
- CJNE A,direct,rel
- CJNE A,#data,rel
- CJNE Rn,#data,rel
;若(Rn) >#data ,则(PC)+rel→PC,且0→CY;
;若(Rn) < #data ,则(PC)+rel→PC,且1→CY;
;若(Rn) = #data ,则顺序执行,且0→CY。
三、减1不为0转移指令
- DJNZ Rn,rel ;(Rn)-1→Rn;
;若(Rn)≠0, 则(PC)+rel →PC;
;若(Rn) = 0, 则结束循环, 顺序执行 - DJNZ direct,rel ;(direct )-1→ direct ;
;若(direct)≠0,则(PC)+rel →PC;
;若(direct) = 0,则结束循环,顺序执行
调用和返回指令
一、短调用指令
- ACALL addr11 ;(PC)+2→PC
;(SP)+1→SP,(PC 0~7)→(SP)
;(SP)+1→SP,(PC 8~15)→(SP)
;addr010→PC010,(PC11~15)不变
二、长调用指令
LCALL addr16 ;(PC)+3→PC
;(SP)+1→SP,(PC 0~7)→(SP)
;(SP)+1→SP,(PC 8~15)→(SP)
;addr0~15→PC
三、返回指令
- 从子程序返回指令
RET ;((SP)) →PC 8~15 ,(SP) -1→SP
;((SP)) →PC 0~7 ,(SP) -1→SP - 中断服务程序返回指令
RETI ;((SP)) →PC 8~15 , (SP) -1→SP
; ((SP)) →PC 0~7 , (SP) -1→SP
;开放中断逻辑
四、空操作指令
NOP
其他(感悟、思考等,可选)
在本学期学习中,发现学习很吃力,很多东西都没有学懂,都需要补,以前欠下的债现在得慢慢还了。