[ASM]------STC

寄存器和常用位寫法

1、管腳

例:P1.1

2、寄存器

直接寫寄存器即可,位操作加 .X

位操作

  • 清零:CLR      例:CLR      P1.1
  • 置位:SETB    例:SETB     P1.1
  • 取反:CPL      例:CRL      P1.1    

注:對寄存器也適用

尋址

尋址就是根據指令給出的地址尋找真實操作數地址的方式

立即尋址:

mov a,#0x01

直接尋址:

mov a,0x01

間接尋址:

mov a,@0x01

寄存器尋址:

mov a,r0

寄存器間接尋址:

mov a,@r0

相對尋址:

sjmp rel

變址尋址:

movc a, @a+dptr

位尋址:

setb p1.1

關於mov:

mov: 普通移動

movc:移動程序存儲器(code),常用於查表

movx:移動外部存儲器(external)

xch:交換兩個字節

push:把一個字節入棧

pop:把一個字節出棧

跳轉

cjne:不相等就跳轉

djnz:不等於0就循環

call:下一條指令地址的兩個字節入棧,調用子程序

ret:call入棧地址出棧,返回原程序,改變棧頂的兩個字節可以返回所需位置

nop:無操作,延時一個指令時間

運算

add:不加已存在進位標誌到最低位,並且產生進位結果,多字節操作的第一步,然後循環使用addc

addc:把已存在進位標誌加到最低位,並且產生進位結果

subb:帶借位的減法

mul:乘法指令,結果16位,低字節放累加器,高字節放b寄存器,結果超出8位時溢出標誌置位,進位標誌清零

div:除法指令,累加器內容除以b寄存器內容,結果在累加器中,餘數在b寄存器中,進位和溢出標誌位清零

inc:加一指令,ff加一得0

dec:減一指令,0減一得ff

邏輯

anl:邏輯與

orl:邏輯或

xrl:邏輯異或

cpl:求反

clr:清零

setb:置位

左移:rl

右移:rr

循環左移:rlc,最高位爲一左移後產生進位,進位標誌又移動到另一端

循環右移:rrc,類似rlc

特殊

十進制指令用於處理bcd碼和一些特殊用途

xchd:交換累加器和間接地址第四位,高四位保留原值

swap:累加器的高四位和低四位交換

僞指令

org:定位後面語句存放的程序空間

db:類似c的數組,定義8位數據表

dw:類似db,定義16位數據表

equ:類似c的define

data:給一個內存單元起名,類似c的unsigned char,同一個單元可以有多個名字

xdata:類似data,但使用外部xdata空間

bit:類似c的bit,給一個位尋址單元起名,同樣一個單元可以有多個名字

end:程序結束,彙編器對後面的語句不予處理

 

 

 

 

 

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章