Re: [問題] 鐵定是新手等級的問題

看板ASM (組合語言)作者 (saram)時間15年前 (2009/09/10 20:07), 編輯推噓1(100)
留言1則, 1人參與, 最新討論串2/2 (看更多)
※ 引述《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
文章代碼(AID): #1AgEl_rc (ASM)
討論串 (同標題文章)
文章代碼(AID): #1AgEl_rc (ASM)