2017-2018-1 学号20155329 《信息安全系统设计基础》第5周学习总结

2017-2018-1 学号20155329 《信息安全系统设计基础》第5周学习总结

教材学习内容总结

-本在学习过程中,发现自己的汇编知识并不扎实,而本学期学习内容和汇编息息相关,所以复习了一下汇编知识。

  1. 汇编结束伪指令
    END

寻址方式

MCS-51单片机有五种寻址方式:
  1. 寄存器寻址
  2. 寄存器间接寻址
  3. 直接寻址
  4. 立即数寻址
  5. 、基寄存器加变址寄存器间接寻址
  6. 、相对寻址
  7. 位寻址
数据传送指令

一、以累加器A为目的操作数的指令(4条)

  1. MOV    A,Rn ;(Rn)→A                n=0~7   
    . 4. MOV    A,#data ;  data →A
    二、以Rn为目的操作数的指令(3条)
  2. MOV      Rn ,A     ;(A)→ Rn
  3. MOV    Rn ,direct ;( direct )→ Rn 
    MOV    Rn ,#data ;  data → Rn
三、以直接寻址的单元为目的操作数的指令
  1. MOV    direct,A ;(A)→direct
  2. MOV    direct,Rn ;(Rn)→direct
  3. MOV    direct,direct  ;(源direct)→目的direct
  4. MOV    direct,@Ri       ;((Ri))→direct
  5. MOV    direct,#data       ;  data→direct
四、以寄存器间接寻址的单元为目的操作数的指令
  1. MOV      @Ri,A ;(A)→(Ri)
  2. MOV    @Ri,direct     ;(direct)→(Ri)
  3. MOV    @Ri,#data       ;   data→ (Ri)
五、十六位数据传送指令
  1. MOV    DPTR,#data16 ;dataH→DPH,dataL →DPL
六、堆栈操作指令
  1. 进栈指令
    PUSH    direct ;(SP)+1 → SP ,(direct) → SP
  2. 退栈指令
    POP    direct
七、字节交换指令(5条)
  1. XCH    A,Rn ;(A)→ß(Rn)
  2. XCH    A,direct       ;(A)→ß(direct)
  3. XCH    A,@Ri         ;(A)→ß((Ri))•
八、半字节交换指令
  1. XCHD    A,@Ri ;(A)0~3→ß((Ri)) 0~3
九、加器A与外部数据存贮器传送指令
  1. MOVX    A,@DPTR ; ((DPTR))→A
  2. MOVX    A,@ Ri ; ((Ri))→A        i=0,1
  3. MOVX    @ DPTR ,A ; (A)→( DPTR)
  4. MOVX    @ Ri , A     ; (A)→(Ri)        i=0,1
十、查表指令
  1. MOVC A ,@ A+PC ;((A)+(PC))→A
  2. MOVC  A , @A+ DPTR ;((A)+(DPTR))
算术运算指令
一、不带进位的加法指令(4条)
  1. ADD    A,Rn ;(A)+(Rn)→A
  2. ADD    A,direct ;(A)+(direct)→A
  3. ADD    A,@Ri  ;(A)+((Ri))→A
  4. ADD    A,#data ;(A)+#data→A
二、带进位加法指令)
  1. ADDC    A,Rn ;(A)+(Rn)+CY→A
  2. ADDC    A,direct ;(A)+(direct) +CY →A
  3. ADDC    A,@Ri ;(A)+((Ri)) +CY →A
  4. ADDC    A,#data ;(A)+  #data +CY →A
三、增量指令
  1. INC    A ;(A)+1 →A
  2. INC    Rn ;(Rn)+1 → Rn
  3. INC    direct ;(direct)+1 → direct
  4. INC    @Ri ;((Ri))+1 →(Ri)
  5. INC    DPTR ;(DPTR)+1 →DPTR
四、十进制调整指令
  1. DA    A
减法指令

一、带进位减法指令

  1. SUBB   A,Rn
  2. SUBB   A,direct
  3. SUBB   A,@Ri
  4. SUBB   A,#data
二、减1指令(4条)
  1. DEC    A
  2. DEC    Rn
  3. DEC    direct
  4. DEC    @Ri
乘法指令
  1. MUL    AB
除法指令
  1. DIV    AB
逻辑运算指令
累加器A的逻辑操作指令
一、累加器A清0

CLR  A

二、累加器A取反

CPL  A

三、左环移指令

RL   A

四、带进位左环移指令

RLC  A

五、右环移指令

RR   A

六、带进位右环移指令

RRC  A

七、累加器ACC半字节交换指令

SWAP   A

两个操作数的逻辑操作指令

逻辑与指令
  1. ANL   A,Rn
  2. ANL   A,direct
  3. ANL   A, @Ri
  4. ANL   A,#data
  5. ANL   direct  ,A
  6. ANL   direct,#data
逻辑或指令
  1. ORL  A,Rn
  2. ORL  A,direct
  3. ORL  A, @Ri
  4. ORL  A,#data
  5. ORL  direct,A
  6. ORL  direct,#data
逻辑异或指令
  1. XRL    A,Rn
  2. XRL    A,direct
  3. XRL    A,@Ri
  4. XRL    A,#data
  5. XRL    direct,A
  6. XRL    direct,#data
位操作指令

位变量传送指令
  1. MOV C,bit
  2. MOV bit,C
位变量修改指令
  1. CLR  C
  2. CLR  bit
  3. CPL  C
  4. CPL  bit
  5. SETB  C
  6. SETB  bit
位变量逻辑与指令
  1. ANL  C,bit
  2. ANL  C,/bit
位变量逻辑或指令
  1. ORL C,bit
  2. ORL C,/bit
控制转移指令

无条件转移指令

  1. 短跳转指令
    AJMP    addr11 ;先(PC)+2→PC ;addr11→PC10~0 ,(PC15~11)
  2. 跳转指令
    LJMP    addr16 ;Addr16→PC
  3. 转移指令
  4. SJMP    rel ;先(PC)+2→PC;后(PC)+rel→PC
    4、 寄存器加变址存器间接转移指令(散转指令)
    JMP    @A+DPTR      ;(A)+(DPTR)→PC
    条件转移指令(8条)
一、测试条件符合转移指令
  1. JZ rel ; 当A=0 时,(PC)+rel→(PC)转移;当A≠0时,顺序执行。
  2. JNZ    rel ; 当A≠0 时,(PC)+rel→(PC)转移;当A=0时,顺序执行。
  3. JC      rel 如果进位标志CY为1,则执行转移;
  4. JNC  rel 如果进位标志CY为0,则执行转移;
  5. JB       bit,  rel 如果直接寻址位的值为1,则执行转移;
  6. JNB   bit , rel 如果直接寻址位的值为0,则执行转移;
  7. JBC   bit , rel 如果直接寻址位的值为1,则执行转移;然后清“0”直接寻址位(bit)。
二、比较不相等转移指令
  1. CJNE    (目的操作数),(源操作数),rel
  2. CJNE    A,direct,rel
  3. CJNE    A,#data,rel
  4. CJNE   Rn,#data,rel   
              ;若(Rn)  >#data ,则(PC)+rel→PC,且0→CY;           
          ;若(Rn) < #data ,则(PC)+rel→PC,且1→CY;           
              ;若(Rn) = #data ,则顺序执行,且0→CY。
三、减1不为0转移指令
  1. DJNZ Rn,rel ;(Rn)-1→Rn;
    ;若(Rn)≠0, 则(PC)+rel →PC;
    ;若(Rn) = 0, 则结束循环, 顺序执行
  2. DJNZ direct,rel ;(direct )-1→ direct ;
            ;若(direct)≠0,则(PC)+rel →PC;
            ;若(direct) = 0,则结束循环,顺序执行
调用和返回指令
一、短调用指令
  1. 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

三、返回指令
  1. 从子程序返回指令
    RET ;((SP)) →PC 8~15 ,(SP) -1→SP
             ;((SP)) →PC 0~7   ,(SP) -1→SP
  2. 中断服务程序返回指令
    RETI ;((SP)) →PC 8~15 , (SP) -1→SP
                  ; ((SP)) →PC 0~7  , (SP) -1→SP
                  ;开放中断逻辑
四、空操作指令

NOP

其他(感悟、思考等,可选)

在本学期学习中,发现学习很吃力,很多东西都没有学懂,都需要补,以前欠下的债现在得慢慢还了。

参考资料

原文地址:https://www.cnblogs.com/hpl20155329/p/7712258.html