Vizitator gabi_g26 Postat Octombrie 27, 2010 Partajează Postat Octombrie 27, 2010 Am scris un program ce inmulteste 2 numere iar rezultatul il stocheaza in 2 registre (L si H). Acesta este programul #include <16f690.inc> org 0x00 V equ 20h L equ 21h H equ 22h num equ 23h movlw d'3' movwf V clrw movlw d'15' movwf L clrf H clrw movlw d'8' movwf num clrw bcf STATUS,C rrf L,f btfsc STATUS,C call adunare nopstart bcf STATUS,C rrf H,f btfsc STATUS,C goto schema bcf STATUS,C rrf L,freiau btfss STATUS,C goto numarare nop clrw movfw V addwf H,f goto numarareschema bcf STATUS,C rrf L,f bsf L,7 goto reiaunumarare decfsz num,f goto Start nop goto $adunare movfw V addwf H,f returnend Am folosit pentru compilare un simulator de microcontroler (PIC simulator IDE). Programul functioneaza dar am observat ulterior o greseala ce a trecut neobservata de compilator. in loc de " movwf " am folosit " movfw ". Am luat separat instructiunea si am observat ca nu face nimic, dar daca o scot din program nu imi mai calculeaza corect. Daca ati mai intalnit o problema asemanatoare astept raspuns. Link spre comentariu
puiu Postat Octombrie 29, 2010 Partajează Postat Octombrie 29, 2010 1. movwf = Move W to fmovfw = Move File to W sau movf f,02.Care instructiune nu face nimica? In timp ce prima este in domeniul 14-Bit Core Byte Oriented File Register Operations a doua este din grupa 12-Bit/14-Bit Core Special Instruction Mnemonics Link spre comentariu
Vizitator gabi_g26 Postat Octombrie 29, 2010 Partajează Postat Octombrie 29, 2010 7. Asa este. Multumesc de raspuns! Link spre comentariu
Postări Recomandate
Creează un cont sau autentifică-te pentru a adăuga comentariu
Trebuie să fi un membru pentru a putea lăsa un comentariu.
Creează un cont
Înregistrează-te pentru un nou cont în comunitatea nostră. Este simplu!
Înregistrează un nou contAutentificare
Ai deja un cont? Autentifică-te aici.
Autentifică-te acum