久久久久久久999_99精品久久精品一区二区爱城_成人欧美一区二区三区在线播放_国产精品日本一区二区不卡视频_国产午夜视频_欧美精品在线观看免费

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 2630|回復(fù): 12
打印 上一主題 下一主題
收起左側(cè)

用MPLAB寫一個十六進(jìn)制加法的匯編代碼出現(xiàn)問題

[復(fù)制鏈接]
跳轉(zhuǎn)到指定樓層
樓主
ID:598304 發(fā)表于 2019-11-21 20:25 | 只看該作者 |只看大圖 回帖獎勵 |倒序?yàn)g覽 |閱讀模式
剛學(xué)匯編,想請問一下大家:
用MPLAB寫一個十六進(jìn)制加法的匯編代碼,其中判斷進(jìn)位那個一直出現(xiàn)錯誤是啥原因。

51hei圖片20191121202350.png (10.32 KB, 下載次數(shù): 54)

51hei圖片20191121202350.png

51hei圖片20191121202354.png (23.06 KB, 下載次數(shù): 58)

51hei圖片20191121202354.png
分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏 分享淘帖 頂 踩
回復(fù)

使用道具 舉報

沙發(fā)
ID:401564 發(fā)表于 2019-11-22 08:33 | 只看該作者
這個匯編編譯器不會像KEIL這樣自動根據(jù)單片機(jī)來包含頭文件,你得在代碼最開始的地方先添加一個像這樣的包含指令
#include <p16f877a.inc>       
接下來還要一段代碼來指定單片機(jī)使用晶振,復(fù)位電壓之類的,就像這樣:
__CONFIG _FOSC_HS & _WDTE_OFF & _PWRTE_OFF & _BOREN_ON & _LVP_OFF & _CPD_OFF & _WRT_OFF & _CP_OFF;
這個代碼是在燒錄界面,先由你自己設(shè)定,然后生成代碼,復(fù)制就可以了

匯編很麻煩的,如果不是工程指定要求用匯編的話,最好還是用C吧
但如果是PIC的12XX和16XX系列,特別是OTP型,我倒是見過很多指定用匯編的
回復(fù)

使用道具 舉報

板凳
ID:598304 發(fā)表于 2019-11-22 21:58 | 只看該作者
Y_G_G 發(fā)表于 2019-11-22 08:33
這個匯編編譯器不會像KEIL這樣自動根據(jù)單片機(jī)來包含頭文件,你得在代碼最開始的地方先添加一個像這樣的包含 ...

首先真的非常感謝您的回答。
因?yàn)槲覀冋n程用的是匯編,老師講的也很匆忙所以有些地方?jīng)]有講得很好,所以有些地方不是很懂,現(xiàn)在懂了。
很感謝!!!
回復(fù)

使用道具 舉報

地板
ID:401564 發(fā)表于 2019-11-23 10:16 | 只看該作者
傲嬌的獸獸! 發(fā)表于 2019-11-22 21:58
首先真的非常感謝您的回答。
因?yàn)槲覀冋n程用的是匯編,老師講的也很匆忙所以有些地方?jīng)]有講得很好,所以 ...

現(xiàn)在竟然還有教學(xué)PIC匯編的
我用8051匯編兩年,才去學(xué)的PIC16系列的匯編,依然覺得很吃力對于PIC匯編,你最好學(xué)會偽指令,這會讓你能更好的學(xué)習(xí),而且效率也會高很多的
以下是一段代碼的開始部分,你可以參考一下:

  #include <p16f877a.inc>        ;包含了PIC16F877A的寄存器聲稱文件,像C,F,W之類的就可以直接引用了
    __CONFIG _FOSC_HS & _WDTE_OFF & _PWRTE_OFF & _BOREN_ON & _LVP_OFF & _CPD_OFF & _WRT_OFF & _CP_OFF;配置設(shè)置生成的代碼,這個代碼有的編譯器是在軟件燒錄,或者是在配置選項(xiàng)那,先配置好,再生成代碼,然后復(fù)制到這里的

    CBLOCK  020H                ;定義連續(xù)變量,CBLOCK  020H,這是一個偽指令,意思就是從20H開始連續(xù)定義變量,之后就可以在代碼中使用了
    COUNT                                 ;計數(shù)用的,COUNT   在定義之后,相當(dāng)021H地址,但用COUNT更加直觀一點(diǎn),
    DEL1                                  ;用在延時子程序中
    DEL2                                   ;用在延時子程序中
    DISP_ADDR                        ;顯示地址用寄存器
    DISP_DATA                        ;顯示數(shù)據(jù)用寄存器
    LED_1                                  ;七段碼的個位
    LED_10                                   ;七段碼的十位
    LED_100                        ;七段碼的百位
    DIV_DATA                        ;除法用寄存器
    DATA_BUF                        ;數(shù)據(jù)寫入和讀出用的緩沖器
    SESHI                        ;測試用寄存器
    ENDC                        ;結(jié)束定義
#define    S1        PORTB,0                ;按置S1
#define    S2        PORTB,1                ;按置S2
#define    S3        PORTB,2                ;按置S3
#define           COM0        PORTD,0                ;
#define           COM1        PORTD,1                ;
#define           COM2        PORTD,2                ;
#define           COM3        PORTD,3                ;定義幾個顯示的RA端口
#define            CN        STATUS,0        ;C為標(biāo)志位,減法有借位=0,無借位=1
#define            CS        PORTD,4                ;片選信號線
#define            SK        PORTD,5                ;時鐘信號線
#define            D_I        PORTD,6                ;數(shù)據(jù)輸入信號線
#define            D_O        PORTD,7                ;數(shù)據(jù)輸出信號線

回復(fù)

使用道具 舉報

5#
ID:598304 發(fā)表于 2019-11-23 20:00 | 只看該作者
Y_G_G 發(fā)表于 2019-11-23 10:16
現(xiàn)在竟然還有教學(xué)PIC匯編的
我用8051匯編兩年,才去學(xué)的PIC16系列的匯編,依然覺得很吃力對于PIC匯編,你最 ...

哈哈哈,感謝感謝,我存著慢慢學(xué)
回復(fù)

使用道具 舉報

6#
ID:598304 發(fā)表于 2019-11-24 12:18 | 只看該作者
Y_G_G 發(fā)表于 2019-11-23 10:16
現(xiàn)在竟然還有教學(xué)PIC匯編的
我用8051匯編兩年,才去學(xué)的PIC16系列的匯編,依然覺得很吃力對于PIC匯編,你最 ...

我還有個小小的問題,關(guān)于減法借位:
比如說我想FE-FF,結(jié)果是-1,但是我想讓他從高位借位1在減可以實(shí)現(xiàn)嗎
回復(fù)

使用道具 舉報

7#
ID:401564 發(fā)表于 2019-11-25 08:47 | 只看該作者
大于十進(jìn)制255的數(shù)值都是這樣運(yùn)算的,不管是加法還是減法
減法運(yùn)算就通過檢測標(biāo)志位來決定高位要不要減1
沒有借位就跳過下一條指令,高位值不變
有借位,高位就減1,高位減1
匯編高于8位的加減運(yùn)算是比較麻煩的事,每次運(yùn)算之后都要檢測一下標(biāo)志位,都要考慮到值有可能是會大于255的結(jié)果.


回復(fù)

使用道具 舉報

8#
ID:372021 發(fā)表于 2019-11-25 10:08 | 只看該作者
受教了,謝謝
回復(fù)

使用道具 舉報

9#
ID:18297 發(fā)表于 2019-11-25 10:59 | 只看該作者
PIC的匯編也是需要添加頭文件的。
比如你這個的status和C必須在頭文件定義。
看對應(yīng)的單片機(jī)型號的datasheet參看它的地址。
如下定義:
STATUS       EQU        03H
C                EQU        0H
回復(fù)

使用道具 舉報

10#
ID:598304 發(fā)表于 2019-11-25 21:31 | 只看該作者
zjjhtony 發(fā)表于 2019-11-25 10:59
PIC的匯編也是需要添加頭文件的。
比如你這個的status和C必須在頭文件定義。
看對應(yīng)的單片機(jī)型號的datash ...

好,非常感謝~
回復(fù)

使用道具 舉報

11#
ID:598304 發(fā)表于 2019-11-25 21:33 | 只看該作者
Y_G_G 發(fā)表于 2019-11-25 08:47
大于十進(jìn)制255的數(shù)值都是這樣運(yùn)算的,不管是加法還是減法
減法運(yùn)算就通過檢測標(biāo)志位來決定高位要不要減1
...

嗯,我八位減一次就判斷一下大小,現(xiàn)在可以了
回復(fù)

使用道具 舉報

12#
ID:401564 發(fā)表于 2019-11-26 14:50 | 只看該作者
匯編很少有人用的,如果要用匯編,基本就是對某些條件要求很高地方才用到的
比如時序要求相當(dāng)高的,或者是片上資源很有限的,就會要求用匯編
如果你是要學(xué)匯編,你這程序一定要再加一個顯示結(jié)果的,然后再燒錄到學(xué)習(xí)板上驗(yàn)證一下,很多匯編的結(jié)果是不能仿真或者想當(dāng)然出來的
回復(fù)

使用道具 舉報

13#
ID:598304 發(fā)表于 2019-11-26 17:56 | 只看該作者
Y_G_G 發(fā)表于 2019-11-26 14:50
匯編很少有人用的,如果要用匯編,基本就是對某些條件要求很高地方才用到的
比如時序要求相當(dāng)高的,或者是片 ...

嗯嗯,我會試一下,謝謝昂
回復(fù)

使用道具 舉報

您需要登錄后才可以回帖 登錄 | 立即注冊

本版積分規(guī)則

手機(jī)版|小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術(shù)交流QQ群281945664

Powered by 單片機(jī)教程網(wǎng)

快速回復(fù) 返回頂部 返回列表
主站蜘蛛池模板: 国产98色在线 | 日韩 | 亚洲二区精品 | 国产精品视频免费看 | 一区二区三区视频在线 | 国产日韩精品视频 | 欧美一级欧美一级在线播放 | 精品国产1区2区3区 一区二区手机在线 | 精品久久久久久国产 | 99精品国产一区二区三区 | 日韩精品一 | 国产精品乱码一区二区三区 | 欧美日韩国产一区二区三区 | 中文字幕第5页 | 九九热最新地址 | 在线观看成年视频 | 久久69精品久久久久久久电影好 | 亚洲欧美一区二区三区在线 | 精品国产一区二区在线 | 欧美日韩视频 | 国产日韩一区二区三免费 | 国产成人免费视频网站高清观看视频 | 午夜免费福利电影 | 成人在线观看免费 | www.久 | 一级在线观看 | www久久| 亚洲国产情侣自拍 | 久久一久久 | 欧美精品一区二区三区四区五区 | 一区二区免费视频 | 黄色av网站在线免费观看 | 成人精品国产一区二区4080 | 国产精品美女久久久 | 日韩视频在线播放 | 亚洲欧美日韩在线不卡 | 国产96在线 | 国产日韩精品久久 | 男人天堂网av | 国产成人精品午夜视频免费 | 亚洲一区视频 | 操久久 |