作者saram (saram)
看板ASM
标题Re: [问题] 铁定是新手等级的问题
时间Thu Sep 10 20:07:26 2009
※ 引述《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
1F:推 ch333:谢谢你的回答^^ 09/11 09:50