Re: [問題] 鐵定是新手等級的問題
※ 引述《ch333 (finger)》之銘言:
: 我是讀8051單晶片 徹底研究 基礎篇這本書
: 其中有關假指令的部份作者只明講了EQU 及DB兩的指令
: 想請教各位
: 1. 8051用的組語是算MASM同一系列嗎?或是單純ASM而已
8051 有自己獨特的8051組語指令.
有很多公司提供8051專用的編譯程式.
你只要注意這masm 的抬頭上有否8051字樣.
: 目前網路上有找到MASM的假指令表
: http://masm1215.myweb.hinet.net/2-base/a-no_true.htm
: 其中有看到高階假指令if while 這些可以用來寫8051嗎(組語部份)?
這是pc 的CPU呀.
不是單晶片的啦...
: 2. SCOPE REG P3.3
: ...............
: ...............
: ...............
: (省略部份程式)
: $(1) DJNZ RO,$ ;讓系統延遲一下才開始動作
: MOV SP,#40h ;SP 堆疊設成40H
: ....................
: ....................
: ....................
: ....................
: ;
: DELAY SETB SCOPE ;P3.3=1
: MOV R0,#00H
: DLY MOV R1,#00H ;
: $(2) DJNZ R1,$
: DJNZ R0,DLY
: CLR SCOPE
: RET
: 程式裡出現兩次$,在JAVA(我之前只學過JAVA)裡會造成程式出錯
: ASM裡OK嗎? 原因是ASM只能從上到下單向執行?
你沒看到DJNZ RO,DLY >>>比較過後, POINT又指向DLY(這個指標)?
還是再往下執行沒錯呀...直到條件符合後, RET(跳出副程式).
: 3.網路上有看到sinlab的8051軟體模擬器
: 以 "8個LED(共陰)實習板"為例
: MOV A,#11000000B
: START:
: MOV P0,A
: ACALL DELAY100MS
: RR A
: SJMP START
: include delay.inc
: END
: include delay.inc是ASM語法嗎? 感覺比較像是C語言的用法 @@?
這是讓編譯程式將DELAY.INC 這個已經放在同目錄的現成的
副程式也包裝進來為一. *.INC 通常是別人提供的, 也可以自己
改寫.
: 4.以書中例子複製取代上面"8個LED(共陰)實習板"執行
: 程式內建的LED也不會動作 聽說simlab只有P0及A可以用而已
: 其他像P1,P2都無法使用?
沒有關係吧? 只是P0是需要提昇電壓的輸出....
led 是一個獨立的顯示系統, 要先讀它的呼叫指令, 了解LED
以後再說吧.
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 218.172.238.224
推
09/11 09:50, , 1F
09/11 09:50, 1F
討論串 (同標題文章)
本文引述了以下文章的的內容:
完整討論串 (本文為第 2 之 2 篇):
ASM 近期熱門文章
PTT數位生活區 即時熱門文章