freepeople性欧美熟妇, 色戒完整版无删减158分钟hd, 无码精品国产vα在线观看DVD, 丰满少妇伦精品无码专区在线观看,艾栗栗与纹身男宾馆3p50分钟,国产AV片在线观看,黑人与美女高潮,18岁女RAPPERDISSSUBS,国产手机在机看影片

正文內(nèi)容

第節(jié)指令系統(tǒng)ppt課件(編輯修改稿)

2025-01-04 05:29 本頁面
 

【文章內(nèi)容簡介】 完成這些操作是非常復雜的,需要測試每一個 BCD 數(shù)值的結(jié)果和 H、 C 標志位。而 DAA 指令則能很簡單的完成這個操作。 下面例子展示了 2 種可能的情況:當 2 個 8 位 BCD 數(shù)據(jù)相加,并且使用 DAA 指令對其進行修正,以修正 BCD 和設置進位標志位。第一個例子展示了一種情況,BCD碼加法后結(jié)果不需要調(diào)整。第二個例子展示了另一種情況, BCD 碼加法后需要對結(jié)果調(diào)整。在第二個例子中 DAA 指令對數(shù)值加上了一個修正的因數(shù)并且調(diào)整了進位標志使其正確表示 BCD 加法的結(jié)果。 LDA $11 。BCD 11 ADD $22 。11 + 22 = 33 DAA 。在這個情況中沒有調(diào)整 LDA $59 。BCD 59 ADD $57 。59+57=$B0 。C=0,H=1,A=$B0 。想得到 59+57=116或者當進位置位時 A=$16 DAA 。加 $66和設置進位 。$B0+$66=$16進位置位 邏輯操作指令 24 邏輯操作指令 24 這些指令執(zhí)行 8 位操作數(shù)的并行布爾運算。邏輯指令均包括了兩個操作數(shù),一個是累加器 A,另一個在存儲器中。立即尋址、直接尋址、擴展尋址或變址尋址等尋址方式 (和 H:X 或者 SP 相關 )也允許用來訪問操作數(shù)。累加器的每個位都執(zhí)行與、或和異或操作。邏輯操作的結(jié)果返回累加器,覆蓋原來的操作數(shù)。 LDA $0C 。位形式為 00001100 AND $0A 。位格式為 00001010 。結(jié)果是 $08 ................00001000 LDA $35 。位格式為 00110101 AND $0F 。位格式為 00001111 。結(jié)果是 $05 ………….00000101 邏輯操作指令 從示例中可看出這些操作和 BCLR 指令之間有些類似的地方。然而, BCLR 僅能夠在 $0000–$00FF 存儲區(qū)間使用, AND 能夠清零任何合并位,而 BCLR 僅能夠清零一位。 AND 能在幾個不同的尋址方式下使用與 A 運算的存儲操作數(shù)。 LDA $0C 。位格式為 00001100 ORA $0A 。位格式為 00001010 。結(jié)果是 $0E 。…………00001110 ORA 操作和 BSET 指令之間有一些類似的地方。然而, BSET 僅僅被使用在存儲區(qū) $0000–$00FF, ORA 能夠設置任何合并位,而 BSET 僅能夠置位一位。 ORA 能在幾個不同的尋址方式下使用與 A 運算的存儲操作數(shù)。 邏輯操作指令 A6 0C LDA $0C 。位格式為 00001100 A8 0A EOR $0A 。位格式為 00001010 。結(jié)果是 $06 。…………00000110 B6 00 LDA PTAD 。讀 I/O端口 A A8 03 EOR $03 。低兩位異或操作 B7 00 STA PTAD 。更新 I/O端口 A “異或”常在操作數(shù)中用來鉗制某些位,有時被認為是掩碼,每個位在掩碼通信時被設置成在另外的操作碼有效位并被反向鉗制。下面的例子是讀 I/O 端口,異或通過直接掩碼值 $03 鉗制兩個最小的有效位,然后向 I/O 端口寫入更新的結(jié)果。 邏輯操作指令 LDA $C5 。位格式為 11000101 COMA 。結(jié)果是 00111010 取反指令簡單的轉(zhuǎn)換操作數(shù)的每個位,不要和求補指令相混淆,取負指令執(zhí)行的是一條算術運算指令,即等效于與一個負 1 相乘。 位操作指令 14 位測試指令(邏輯操作) BCLR n,addr8 (其實是 8條指令,見下頁 ) BSET n,addr8 ( 8 ) 位操作指令 14 位操作指令 14 位測試指令(邏輯操作) 位指令將相應存儲地址中的操作數(shù)與 A 寄存器的每個位進行“與操作” (就像 A 與 ),但是結(jié)果不存儲在累加器中。在執(zhí)行位指令后,根據(jù)與操作的結(jié)果來置位或清零條件碼寄存器 N 和 Z 位,以實現(xiàn)條件跳轉(zhuǎn)。如果使用“掩碼”方法進行編程,則掩碼中的每個對應位被測試,執(zhí)行 BIT 指令后,若測試位均不是 1 則 Z 位被置位。 位操作指令 14 位測試指令 LDA SCI1S1 。讀 SCI狀態(tài)寄存器 BIT (mOR+mNF+mFE+mPF) 。所有的錯誤標志的掩碼 BNE sciError 。如果有任何的錯誤標志被置位則轉(zhuǎn)移 。A中值未被改變 sciError:。 如果有任何的錯誤標志被置位,則跳轉(zhuǎn)到此 例如用于判斷 SCI1S1 中有關錯誤標志位的掩碼: mOR equ %00001000 。接收超時的掩碼 mNF equ %00000100 。接收干擾標志的掩碼 mFE equ %00000010 。接收端幀差錯的掩碼 mPF equ %00000001 。接收端奇偶校驗失敗的掩碼 如果希望當 SCI1S1 中至少有一個錯誤標志被置位時轉(zhuǎn)移,則采用復合掩碼: (mOR+mNF+mFE+mPF)。上述程序則采用這種方法 . 位操作指令 14 位的置位與清零 讀 ——修改 ——寫 位的置位 (BSET)與清零 (BCLR)指令被認為是位級的存儲指令,但是這些指令通常取一個完整的 8位的數(shù),修改指定的位,然后重寫整個 8 位的數(shù)。在某些情況下,例如當目標位置與 RAM 變量不對應時,這個微妙的操作將導致意想不到的結(jié)果。如果BSET或 BCLR 指令試圖改變非易失性存儲單元的某一位,通常這一位不會改變因為非易失性存儲器要求更復雜的操作步驟來改變這一位。 某些狀態(tài)位是通過一定步驟清零的,這一步驟包括讀取狀態(tài)位后寫入到外設模塊的其他寄存器。使用者會驚訝的發(fā)現(xiàn) BSET 和 BCLR 指令能滿足讀取狀態(tài)寄存器的要求。為了避免這樣的問題,只要記住 BSET 和 BCLR 指令是能并行讀取 8 位數(shù)據(jù)的讀 改 寫指令。 某些控制寄存器或 I/O 寄存器不能夠讀寫同一物理邏輯狀態(tài)。一般來說,在這些地址區(qū)域不使用讀 改 寫指令,因為它們也許會產(chǎn)生意想不到的結(jié)果。 BSET 和 BCLR 指令能滿足讀取狀態(tài)寄存器的要求 . 。置位的例子 – 打開 TE而不需要改變 RE 16 1B BSET TE,SCI1C2 。SCI傳輸使能 。功能上與下面是相同的 B6 1B LDA SCI1C2 。讀當前 SCCR2的值 AA 08 ORA mTE
點擊復制文檔內(nèi)容
教學課件相關推薦
文庫吧 www.dybbs8.com
備案圖片鄂ICP備17016276號-1