大學學習筆記 微控制器第三章

2021-06-28 06:41:27 字數 1986 閱讀 8367

例題1:題目 a的bcd碼為(56)bcd ,b的bcd碼為(67)bcd,執行以下指令

add a, r2

da a    分析指令執行後的結果 第三章ppt 76

例題2:題目 編寫2個十六進製制數的加法程式,假定和數超過雙位元組。

(21h 20h)+(31h 30h)——>( 42h 41h 40h )

分析:線低位元組作不帶進製求和,再作帶進製高位元組求和。

mov a ,20h

add  a, 30h

mov  40h ,a

mov a,21h

addc a ,31h

mov 41h,a

mov a,#0

addc a,#0

mov 42h,a

(ppt80 有6位bcd碼的加法每一步都加了da操作,而且da操作只能對a進行操作)

例題3:題目 雙位元組無符號數相減(31h 30h)— (41h 40h)—>(31h 30h)

程式如下:

clr c                           //清零進製端

mov r0,#30h

mov r1,#40h

mov a,  @r0              //取出被減數低位元組

subb a, @r1

mov @r0,a             //存低位元組的差值

inc r0                         //指向高位元組

inc r1

mov a,@r0

subb a,@r1

mov @r0,a

例題4:題目 雙位元組乘法程式 (r0 r1)x(r2)—> r3 r4 r5

mov a,r1

mov b,r2

mul ab

mov r5 ,a

mov r4, b

mov a,r1

mov b,r2

mul ab

add a,r4

mov r4 a

mov a,b

addc a,#0   //我不明白為什麼會有進製端

mov r3, a

例題5:題目 設40h單元中存放乙個16位二進位制的低8位,41h單元中存放這個16位二進位制的高八位(假設這個數小於128),請將這個16位二進位制數進行左移1位 思路:利用cy

clr c

mov r1,#40h

mov a,@r1

rlc a

mov @r1,a //儲存低8位位元組

inc r1

mov a,@r1

rlc a  //高八位左移,並帶進低8位左移產生的進製位

mov @r1,a

寫程式需要注意:寫進來用暫存器a進行執行的時候,最後需要再(放)加回去。

比較不相等指令:

若        第乙個運算元≠第二個運算元  則跳轉

並且    第乙個運算元》第二個運算元   cy=0

第乙個運算元《第二個運算元   cy=1

若       第乙個運算元=第二個運算元    cy=0,並且順序執行

所以比較大小直接cjne 之後jc就行

例題6:題目 利用djnz指令設計延時迴圈程式,已知 f=12mhz

dealy:mov r7,#10

djnz r7,$

延遲長度:△t=1us x 2 x 10 + 1us = 21us

例題7:題目 統計片內ram 30h開始的20個帶符號數中負數的個數,結果存入50h單元

mov r2,#20h    //迴圈次數

mov r3,#0        //負數個數

mov r0 , #30h   //ram起始位址 

loop:

mov a, @r0

jnb acc.7,l1      //判斷最高位

inc r3

l1:inc r0

djnz r2,loop

mov 50h ,r3

第三章學習筆記

執行執行緒,簡稱執行緒,是在程序中活動的物件。核心排程的物件是執行緒,而不是程序。程序描述符中包含的資料能完整地描述乙個正在執行的程式 各種狀態之間存在轉換的條件,若滿足則進行轉換,跟模擬電路中所學的狀態機是乙個道理。通過st task state task,state 函式來設定當前程序狀態 fo...

第三章筆記

第三章預習筆記 一 高階語言和機器指令中的運算 1,按位運算 符號 按位or運算 符號 按位and運算 符號 表示按位not運算 符號 按位xor運算。實現掩碼操作 通過與給定的乙個位模式進行按位與,可以提取所需要的位,對這些位進行 置1 清0 等。2,符號 按位or運算 符號 表示and運算 符號...

Asp學習筆記第三章

2006 07 20 20 03 07 asp學習筆記第三章 一 收集客戶端資料到伺服器語句request 1.表單頁面 這句一定要放到表單標籤的第一行 2.處理表單頁面 dim id,pwd id request.form id1 pwd request.form pwd1 if isempty ...