如何获取用户输入的PIC程序集

问题描述

我之前在这里写过的一个汇编程序有问题。所以问题是

R = 23 + A.6 - 101

如何让用户输入A?另外,如何使用参与变量获得数据内存的分配。这是我之前发布的代码

LIST P=16C73A
    #INCLUDE <P16C73A.inc> ;
    ORG 0 ;PROGRAM MEMORY ADDRESS =0x0000
    GOTO MAIN

N1      EQU 70      
RL      EQU 71      
RH      EQU 72      

    ORG 30
MAIN:   
    MOVLW .6    
    MOVWF N1    
    MOVLW .10   
    CLRF RL 
    CLRF RH 

UP:     ADDWF RL ;RL=W+RL       
    BTFSC STATUS,C ; CHECK C FLAG IN STATUS 
    INCF RH         ;IF(C==1 THEN RH=RH+1) ;
    DECFSZ N1       ;N1=N1-1 ;Декрементация
    GOTO UP         ;IF(N1!=0) THEN GOTO UP LABEL
    
ADD:
    MOVLW .23   
    ADDWF RL    
    CLRW        
    MOVLW .101
    SUBWF RL 
   HERE:    GOTO HERE
    END 

我使用的是 MPLAB IDE。

解决方法

如果你想在 PIC 程序集中分配内存,你可以这样做;

Bank_0    udata 0x020
  A            RES 1                    ;reserve 1 Byte at address 0x20
  B            RES 1                    ;reserve 1 Byte at address 0x21
  C            RES 1                    ;reserve 1 Byte at address 0x22

或者使用共享银行

Bank0_shr  udata_shr 0x70
  W_safe       RES 1                  ;reserve 1 Byte at address 0x70

您可以输入一个值,例如控制器端口上的二进制格式。