0x4에서 찾을지도도 MCU 8,051

P

PG1995

Guest
안녕 연결된 비디오에 모습을하시기 바랍니다. 왜 내가 특별히 END 문을 포함 "0x4에서 찾을지도"라고하는 거지? 내보기에 PC가 위치 0x4로 코드 때문에 END 신호 터미네이션을 지정하지 않습니다. 저는 어셈블리 언어에 새로 온 사람. 그것으로 날 도와주세요. 많이 감사합니다. http://www.youtube.com/watch?v=aSXmKVv1hdY 감사 PG
 
[코드] ORG 오 값이 일치하다 43H MOV, # 값은 MOV R0, # VALUE 엔드 [/ 코드]
 
안녕 PG1995, 당신이 사용하고있는 시뮬레이터를 말씀해 주시겠습니까? 그리고 어떤 버전? 당신이 게시물을지기 동일한 코드가 성공적으로 Keil uVision3에서 구현되기 때문에. 그리고 당신이 비디오에 나타났으 시뮬레이터를 사용하지했습니다. 그래서 나는 그것에 대해 알려주시기 바랍니다.
 
나는이 시뮬레이터를 밝혔다 모르지만, 분명한 설명과 같이, 프로세서가 [나] MOV R0 후 어떻게해야할지하지 않으며 # VALUE [/I]. 0x4가 비어 있습니다 다음 명령어 주소 것이다. 당신은 최종 진술서가 뭔가를 할 수있는 프로세서를 거느리고 있다고 가정하에 분명히 있습니다. 하지만 그 사건 아니에요. 그냥 코드 텍스트의 끝이다. 의도된 프로세서 행동들은 의해 디자인되어야한다, 예를 들어 루프를 반복합니다.
 
예 0x4 끝이 후에 다른 프로그램을 작성하고 볼 수 있습니다 다음 명령어의 PC의 주소입니다
 
bassa, FvM, 대단히 감사합니다. @ Jigar : 그것은 MCU 8051 IDE입니다. 제가 루프를 포함시켰습니다. [코드] ORG 오 반복 값이 일치하다 43H MOV, # 값은 MOV R0, # VALUE SJMP 반복 끝 [/ 코드] [크기 = 4]는 새로운 코드 : [/ 크기] 나 또한 노력했습니다 8051에 대한 DB를 사용하는 다른 프로그램을 작성할 수 있습니다. 비디오에 모습을 가지고 아래의 쿼리 (여러분은 또한 비디오에 포함된 동일한 쿼리를 찾을 수 있습니다)를 제발 도와주세요 http://www.youtube.com/watch?v=RKn... 모든 명령어 및 데이터를 모두 한 바이트를 맞지 않을 수 있습니까? 감사의 PG
 
당신은 어셈블러 언어를 작성하고자한다면, 그것은 각각의 프로세서가 어떻게 작동하는지 이해하기 위해 필요하다. 당신의 코드는 당신이 뭘 기대하지 않습니다. 당신은 코드와 데이터 메모리와 이들이 어떻게 구체적인 지침으로 액세스할 수있는 차이에주의해야합니다. 당신의 예에서는 ROM 상수를 정의합니다. 그러나 MOV는 80H 액세스는 ROM이없는 RAM. 명령어의 길이에 관해서는, 정보가 특정 명령, 어떻게하는지 사용자 설명서의 지시 설명의 검토 코딩해야하는 고려하십시오, 그리고 길이가 왜 그들이 누구로 확실히 이해할 거예요.
 
[견적] [코드] ORG 오 반복 값이 일치하다 43H MOV, # 값은 MOV R0, # VALUE SJMP 반복 끝 [/CODE] [/ 견적] [코드]로 교체 값이 일치하다 43H ORG 오 반복 MOV, # 값은 MOV R0, # VALUE SJMP 반복 엔드 [/CODE] MOV, 80H는 SFR에 액세스하게됩니다. [견적] [코드] ORG 오 MOV, 80H MOV R0, 81H ORG 80H DB를 10 DB 12 END [/CODE] [/ 인용]로 교체 : [코드] ORG 오 MOV Dptr, # 80H CLR Movc, @ + Dptr INC Dptr CLR Movc, @ + Dptr ORG 80H DB를 10 DB 12 END [/CODE]
 
[견적 = PG1995; 1​​,055,984] [크기 = 3] [COLOR = "# FF0000"] Q1 : [/COLOR] [/ 크기] 무엇이 가치 "를 참조하기 때문에 코드를 몇 가지 문제가 있습니다 가 "를 취했습니다. 마찬가지로, R0에 대한 가치도 잘못된 것입니다. [/ 견적] 당신은 (예제 코드 포스트 # 9 굴복 참조) 코드 메모리에 액세스하려면 MOVC 명령을 사용해야 [견적 = PG1995; 1​​,055,984] [크기 = 3] [COLOR = "# FF0000"] Q2 : [/COLOR] [/ 크기] PC의 가치가 모든 라인 2로 올라간다. 이 명령은 MOV, 80H는 하나가 아닌 두 바이트를 차지할 것을 읽고 그리고 그 이유는 PC가 코드의 모든 라인에 대해 ''2하여 층까지입니다. 그러나 PC가 유일한 '1 '바이트로 올라가도록 명령은 단일 바이트에 저장하는 것이 안되죠? 즉, 그것은 모든 명령어 및 데이터를 모두 한 바이트를 맞지 않을 수 있나요? [/ 인용] 당신이 그것을 바꿀 수없는 8051의 ISA (명령어 집합 아키텍처)하지만 당신은 원래 이것들을 참조 대용품을 위해 다른 명령이나 메서드를 사용하면 간단한 튜토리얼
 

Welcome to EDABoard.com

Sponsor

Back
Top