⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 pass4.dat

📁 UART transmitter and receiver mocros
💻 DAT
📖 第 1 页 / 共 5 页
字号:
    COMMENT-;clear 'us' interrupt counter
    ADDRESS-010
      LABEL-
INSTRUCTION-LOAD
   OPERAND1-int_counter_msb
  OP1 VALUE-sC
   OPERAND2-00
  OP2 VALUE-00
    COMMENT-
    ADDRESS-011
      LABEL-
INSTRUCTION-ENABLE
   OPERAND1-INTERRUPT
  OP1 VALUE-INTERRUPT
   OPERAND2-
  OP2 VALUE-
    COMMENT-;enable the 1us interrupts
    ADDRESS-012
      LABEL-
INSTRUCTION-
   OPERAND1-
  OP1 VALUE-
   OPERAND2-
  OP2 VALUE-
    COMMENT-;
    ADDRESS-012
      LABEL-
INSTRUCTION-
   OPERAND1-
  OP1 VALUE-
   OPERAND2-
  OP2 VALUE-
    COMMENT-;
    ADDRESS-012
      LABEL-
INSTRUCTION-
   OPERAND1-
  OP1 VALUE-
   OPERAND2-
  OP2 VALUE-
    COMMENT-;Start of the main program loop.
    ADDRESS-012
      LABEL-
INSTRUCTION-
   OPERAND1-
  OP1 VALUE-
   OPERAND2-
  OP2 VALUE-
    COMMENT-;
    ADDRESS-012
      LABEL-
INSTRUCTION-
   OPERAND1-
  OP1 VALUE-
   OPERAND2-
  OP2 VALUE-
    COMMENT-;A prompt is transmitted to the UART transmitter and then
    ADDRESS-012
      LABEL-
INSTRUCTION-
   OPERAND1-
  OP1 VALUE-
   OPERAND2-
  OP2 VALUE-
    COMMENT-;a command can be entered and interpreted.
    ADDRESS-012
      LABEL-
INSTRUCTION-
   OPERAND1-
  OP1 VALUE-
   OPERAND2-
  OP2 VALUE-
    COMMENT-;
    ADDRESS-012
      LABEL-
INSTRUCTION-
   OPERAND1-
  OP1 VALUE-
   OPERAND2-
  OP2 VALUE-
    COMMENT-;
    ADDRESS-012
      LABEL-prompt_input
INSTRUCTION-CALL
   OPERAND1-send_prompt
  OP1 VALUE-115
   OPERAND2-
  OP2 VALUE-
    COMMENT-;Prompt 'KCPSM3>'
    ADDRESS-013
      LABEL-
INSTRUCTION-CALL
   OPERAND1-receive_string
  OP1 VALUE-0C3
   OPERAND2-
  OP2 VALUE-
    COMMENT-;obtain input string and maintain the time
    ADDRESS-014
      LABEL-
INSTRUCTION-
   OPERAND1-
  OP1 VALUE-
   OPERAND2-
  OP2 VALUE-
    COMMENT-;
    ADDRESS-014
      LABEL-
INSTRUCTION-
   OPERAND1-
  OP1 VALUE-
   OPERAND2-
  OP2 VALUE-
    COMMENT-;
    ADDRESS-014
      LABEL-
INSTRUCTION-
   OPERAND1-
  OP1 VALUE-
   OPERAND2-
  OP2 VALUE-
    COMMENT-;Parse the string and perform actions as required
    ADDRESS-014
      LABEL-
INSTRUCTION-
   OPERAND1-
  OP1 VALUE-
   OPERAND2-
  OP2 VALUE-
    COMMENT-;
    ADDRESS-014
      LABEL-
INSTRUCTION-
   OPERAND1-
  OP1 VALUE-
   OPERAND2-
  OP2 VALUE-
    COMMENT-;
    ADDRESS-014
      LABEL-
INSTRUCTION-
   OPERAND1-
  OP1 VALUE-
   OPERAND2-
  OP2 VALUE-
    COMMENT-;
    ADDRESS-014
      LABEL-
INSTRUCTION-LOAD
   OPERAND1-s1
  OP1 VALUE-s1
   OPERAND2-string_start
  OP2 VALUE-20
    COMMENT-
    ADDRESS-015
      LABEL-
INSTRUCTION-CALL
   OPERAND1-fetch_char_from_memory
  OP1 VALUE-091
   OPERAND2-
  OP2 VALUE-
    COMMENT-
    ADDRESS-016
      LABEL-
INSTRUCTION-COMPARE
   OPERAND1-s0
  OP1 VALUE-s0
   OPERAND2-character_CR
  OP2 VALUE-0D
    COMMENT-;carriage return does nothing
    ADDRESS-017
      LABEL-
INSTRUCTION-JUMP
   OPERAND1-Z
  OP1 VALUE-Z
   OPERAND2-prompt_input
  OP2 VALUE-012
    COMMENT-
    ADDRESS-018
      LABEL-
INSTRUCTION-COMPARE
   OPERAND1-s0
  OP1 VALUE-s0
   OPERAND2-character_T
  OP2 VALUE-54
    COMMENT-;start of 'TIME' command?
    ADDRESS-019
      LABEL-
INSTRUCTION-JUMP
   OPERAND1-Z
  OP1 VALUE-Z
   OPERAND2-test_for_TIME
  OP2 VALUE-01E
    COMMENT-
    ADDRESS-01A
      LABEL-
INSTRUCTION-COMPARE
   OPERAND1-s0
  OP1 VALUE-s0
   OPERAND2-character_A
  OP2 VALUE-41
    COMMENT-;start of 'ALARM' command?
    ADDRESS-01B
      LABEL-
INSTRUCTION-JUMP
   OPERAND1-Z
  OP1 VALUE-Z
   OPERAND2-test_for_ALARM
  OP2 VALUE-037
    COMMENT-
    ADDRESS-01C
      LABEL-
INSTRUCTION-
   OPERAND1-
  OP1 VALUE-
   OPERAND2-
  OP2 VALUE-
    COMMENT-;
    ADDRESS-01C
      LABEL-
INSTRUCTION-
   OPERAND1-
  OP1 VALUE-
   OPERAND2-
  OP2 VALUE-
    COMMENT-;trap other command starts here
    ADDRESS-01C
      LABEL-
INSTRUCTION-
   OPERAND1-
  OP1 VALUE-
   OPERAND2-
  OP2 VALUE-
    COMMENT-;
    ADDRESS-01C
      LABEL-bad_input_command
INSTRUCTION-CALL
   OPERAND1-send_Syntax_Error
  OP1 VALUE-0ED
   OPERAND2-
  OP2 VALUE-
    COMMENT-;no valid command
    ADDRESS-01D
      LABEL-
INSTRUCTION-JUMP
   OPERAND1-Z
  OP1 VALUE-Z
   OPERAND2-prompt_input
  OP2 VALUE-012
    COMMENT-
    ADDRESS-01E
      LABEL-
INSTRUCTION-
   OPERAND1-
  OP1 VALUE-
   OPERAND2-
  OP2 VALUE-
    COMMENT-;
    ADDRESS-01E
      LABEL-
INSTRUCTION-
   OPERAND1-
  OP1 VALUE-
   OPERAND2-
  OP2 VALUE-
    COMMENT-;
    ADDRESS-01E
      LABEL-test_for_TIME
INSTRUCTION-CALL
   OPERAND1-fetch_char_from_memory
  OP1 VALUE-091
   OPERAND2-
  OP2 VALUE-
    COMMENT-
    ADDRESS-01F
      LABEL-
INSTRUCTION-COMPARE
   OPERAND1-s0
  OP1 VALUE-s0
   OPERAND2-character_I
  OP2 VALUE-49
    COMMENT-;test for rest of 'TIME'
    ADDRESS-020
      LABEL-
INSTRUCTION-JUMP
   OPERAND1-NZ
  OP1 VALUE-NZ
   OPERAND2-bad_input_command
  OP2 VALUE-01C
    COMMENT-
    ADDRESS-021
      LABEL-
INSTRUCTION-CALL
   OPERAND1-fetch_char_from_memory
  OP1 VALUE-091
   OPERAND2-
  OP2 VALUE-
    COMMENT-
    ADDRESS-022
      LABEL-
INSTRUCTION-COMPARE
   OPERAND1-s0
  OP1 VALUE-s0
   OPERAND2-character_M
  OP2 VALUE-4D
    COMMENT-
    ADDRESS-023
      LABEL-
INSTRUCTION-JUMP
   OPERAND1-NZ
  OP1 VALUE-NZ
   OPERAND2-bad_input_command
  OP2 VALUE-01C
    COMMENT-
    ADDRESS-024
      LABEL-
INSTRUCTION-CALL
   OPERAND1-fetch_char_from_memory
  OP1 VALUE-091
   OPERAND2-
  OP2 VALUE-
    COMMENT-
    ADDRESS-025
      LABEL-
INSTRUCTION-COMPARE
   OPERAND1-s0
  OP1 VALUE-s0
   OPERAND2-character_E
  OP2 VALUE-45
    COMMENT-
    ADDRESS-026
      LABEL-
INSTRUCTION-JUMP
   OPERAND1-NZ
  OP1 VALUE-NZ
   OPERAND2-bad_input_command
  OP2 VALUE-01C
    COMMENT-
    ADDRESS-027
      LABEL-
INSTRUCTION-
   OPERAND1-
  OP1 VALUE-
   OPERAND2-
  OP2 VALUE-
    COMMENT-;now have a valid TIME command to process
    ADDRESS-027
      LABEL-
INSTRUCTION-CALL
   OPERAND1-fetch_char_from_memory
  OP1 VALUE-091
   OPERAND2-
  OP2 VALUE-
    COMMENT-
    ADDRESS-028
      LABEL-
INSTRUCTION-COMPARE
   OPERAND1-s0
  OP1 VALUE-s0
   OPERAND2-character_CR
  OP2 VALUE-0D
    COMMENT-;carriage return means display time
    ADDRESS-029
      LABEL-
INSTRUCTION-JUMP
   OPERAND1-NZ
  OP1 VALUE-NZ
   OPERAND2-set_time_command
  OP2 VALUE-02C
    COMMENT-
    ADDRESS-02A
      LABEL-
INSTRUCTION-CALL
   OPERAND1-transmit_time
  OP1 VALUE-0A8
   OPERAND2-
  OP2 VALUE-
    COMMENT-;transmit time to UART
    ADDRESS-02B
      LABEL-
INSTRUCTION-JUMP
   OPERAND1-prompt_input
  OP1 VALUE-012
   OPERAND2-
  OP2 VALUE-
    COMMENT-
    ADDRESS-02C
      LABEL-set_time_command
INSTRUCTION-COMPARE
   OPERAND1-s0
  OP1 VALUE-s0
   OPERAND2-character_space
  OP2 VALUE-20
    COMMENT-
    ADDRESS-02D
      LABEL-
INSTRUCTION-JUMP
   OPERAND1-NZ
  OP1 VALUE-NZ
   OPERAND2-bad_input_command
  OP2 VALUE-01C
    COMMENT-
    ADDRESS-02E
      LABEL-
INSTRUCTION-CALL
   OPERAND1-test_time_string
  OP1 VALUE-06D
   OPERAND2-
  OP2 VALUE-
    COMMENT-;interpret 'hh:mm:ss' string
    ADDRESS-02F
      LABEL-
INSTRUCTION-JUMP
   OPERAND1-C
  OP1 VALUE-C
   OPERAND2-prompt_input
  OP2 VALUE-012
    COMMENT-;test for invalid input
    ADDRESS-030
      LABEL-
INSTRUCTION-STORE
   OPERAND1-s6
  OP1 VALUE-s6
   OPERAND2-real_time_hours
  OP2 VALUE-06
    COMMENT-;set new time into clock
    ADDRESS-031
      LABEL-
INSTRUCTION-STORE
   OPERAND1-s5
  OP1 VALUE-s5
   OPERAND2-real_time_minutes
  OP2 VALUE-07
    COMMENT-
    ADDRESS-032
      LABEL-
INSTRUCTION-STORE
   OPERAND1-s4
  OP1 VALUE-s4
   OPERAND2-real_time_seconds
  OP2 VALUE-08
    COMMENT-
    ADDRESS-033
      LABEL-
INSTRUCTION-STORE
   OPERAND1-s0
  OP1 VALUE-s0
   OPERAND2-ms_time_lsb
  OP2 VALUE-04
    COMMENT-;clear 'ms' counter (s0=00)
    ADDRESS-034
      LABEL-
INSTRUCTION-STORE
   OPERAND1-s0
  OP1 VALUE-s0
   OPERAND2-ms_time_msb
  OP2 VALUE-05
    COMMENT-
    ADDRESS-035
      LABEL-
INSTRUCTION-CALL
   OPERAND1-transmit_time
  OP1 VALUE-0A8
   OPERAND2-
  OP2 VALUE-
    COMMENT-;transmit new time to UART
    ADDRESS-036
      LABEL-
INSTRUCTION-JUMP
   OPERAND1-prompt_input
  OP1 VALUE-012
   OPERAND2-
  OP2 VALUE-
    COMMENT-
    ADDRESS-037
      LABEL-
INSTRUCTION-
   OPERAND1-
  OP1 VALUE-
   OPERAND2-
  OP2 VALUE-
    COMMENT-;
    ADDRESS-037
      LABEL-
INSTRUCTION-
   OPERAND1-
  OP1 VALUE-
   OPERAND2-
  OP2 VALUE-
    COMMENT-;
    ADDRESS-037
      LABEL-test_for_ALARM
INSTRUCTION-CALL
   OPERAND1-fetch_char_from_memory
  OP1 VALUE-091
   OPERAND2-
  OP2 VALUE-
    COMMENT-
    ADDRESS-038
      LABEL-
INSTRUCTION-COMPARE
   OPERAND1-s0
  OP1 VALUE-s0
   OPERAND2-character_L
  OP2 VALUE-4C
    COMMENT-;test for rest of 'ALARM'
    ADDRESS-039
      LABEL-
INSTRUCTION-JUMP
   OPERAND1-NZ
  OP1 VALUE-NZ
   OPERAND2-bad_input_command
  OP2 VALUE-01C
    COMMENT-
    ADDRESS-03A
      LABEL-
INSTRUCTION-CALL
   OPERAND1-fetch_char_from_memory
  OP1 VALUE-091
   OPERAND2-
  OP2 VALUE-
    COMMENT-
    ADDRESS-03B
      LABEL-
INSTRUCTION-COMPARE
   OPERAND1-s0
  OP1 VALUE-s0
   OPERAND2-character_A
  OP2 VALUE-41
    COMMENT-
    ADDRESS-03C
      LABEL-
INSTRUCTION-JUMP
   OPERAND1-NZ
  OP1 VALUE-NZ
   OPERAND2-bad_input_command
  OP2 VALUE-01C
    COMMENT-
    ADDRESS-03D
      LABEL-
INSTRUCTION-CALL
   OPERAND1-fetch_char_from_memory
  OP1 VALUE-091
   OPERAND2-
  OP2 VALUE-
    COMMENT-
    ADDRESS-03E
      LABEL-
INSTRUCTION-COMPARE
   OPERAND1-s0
  OP1 VALUE-s0
   OPERAND2-character_R
  OP2 VALUE-52
    COMMENT-
    ADDRESS-03F
      LABEL-
INSTRUCTION-JUMP
   OPERAND1-NZ
  OP1 VALUE-NZ
   OPERAND2-bad_input_command
  OP2 VALUE-01C
    COMMENT-
    ADDRESS-040
      LABEL-
INSTRUCTION-CALL
   OPERAND1-fetch_char_from_memory
  OP1 VALUE-091
   OPERAND2-
  OP2 VALUE-
    COMMENT-
    ADDRESS-041
      LABEL-
INSTRUCTION-COMPARE
   OPERAND1-s0
  OP1 VALUE-s0
   OPERAND2-character_M
  OP2 VALUE-4D
    COMMENT-
    ADDRESS-042
      LABEL-
INSTRUCTION-JUMP
   OPERAND1-NZ
  OP1 VALUE-NZ
   OPERAND2-bad_input_command
  OP2 VALUE-01C
    COMMENT-
    ADDRESS-043
      LABEL-
INSTRUCTION-
   OPERAND1-
  OP1 VALUE-
   OPERAND2-
  OP2 VALUE-
    COMMENT-;now have a valid ALARM command to process
    ADDRESS-043
      LABEL-
INSTRUCTION-CALL
   OPERAND1-fetch_char_from_memory
  OP1 VALUE-091
   OPERAND2-
  OP2 VALUE-
    COMMENT-
    ADDRESS-044
      LABEL-
INSTRUCTION-COMPARE
   OPERAND1-s0
  OP1 VALUE-s0
   OPERAND2-character_CR
  OP2 VALUE-0D
    COMMENT-;carriage return means display alarm time
    ADDRESS-045
      LABEL-
INSTRUCTION-JUMP
   OPERAND1-NZ
  OP1 VALUE-NZ
   OPERAND2-set_alarm_command
  OP2 VALUE-048
    COMMENT-
    ADDRESS-046
      LABEL-
INSTRUCTION-CALL
   OPERAND1-transmit_alarm_time
  OP1 VALUE-0AC
   OPERAND2-
  OP2 VALUE-
    COMMENT-;transmit time to UART
    ADDRESS-047
      LABEL-
INSTRUCTION-JUMP
   OPERAND1-prompt_input
  OP1 VALUE-012
   OPERAND2-
  OP2 VALUE-
    COMMENT-
    ADDRESS-048
      LABEL-set_alarm_command
INSTRUCTION-COMPARE
   OPERAND1-s0
  OP1 VALUE-s0
   OPERAND2-character_space
  OP2 VALUE-20
    COMMENT-;test for ON or OFF command
    ADDRESS-049
      LABEL-
INSTRUCTION-JUMP
   OPERAND1-NZ
  OP1 VALUE-NZ
   OPERAND2-bad_input_command
  OP2 VALUE-01C
    COMMENT-
    ADDRESS-04A
      LABEL-
INSTRUCTION-CALL
   OPERAND1-fetch_char_from_memory
  OP1 VALUE-091
   OPERAND2-
  OP2 VALUE-
    COMMENT-
    ADDRESS-04B
      LABEL-
INSTRUCTION-COMPARE
   OPERAND1-s0
  OP1 VALUE-s0
   OPERAND2-character_O
  OP2 VALUE-4F
    COMMENT-
    ADDRESS-04C
      LABEL-
INSTRUCTION-JUMP
   OPERAND1-Z
  OP1 VALUE-Z
   OPERAND2-set_alarm_on_off
  OP2 VALUE-055
    COMMENT-
    ADDRESS-04D
      LABEL-
INSTRUCTION-SUB
   OPERAND1-s1
  OP1 VALUE-s1
   OPERAND2-01
  OP2 VALUE-01
    COMMENT-;move memory pointer back to first character of 'hh:mm:ss' string
    ADDRESS-04E
      LABEL-
INSTRUCTION-CALL
   OPERAND1-test_time_string
  OP1 VALUE-06D
   OPERAND2-
  OP2 VALUE-
    COMMENT-;interpret 'hh:mm:ss' string
    ADDRESS-04F
      LABEL-
INSTRUCTION-JUMP
   OPERAND1-C
  OP1 VALUE-C
   OPERAND2-prompt_input
  OP2 VALUE-012
    COMMENT-;test for invalid input
    ADDRESS-050
      LABEL-
INSTRUCTION-STORE
   OPERAND1-s6
  OP1 VALUE-s6
   OPERAND2-alarm_time_hours
  OP2 VALUE-09
    COMMENT-;set new time into clock
    ADDRESS-051
      LABEL-
INSTRUCTION-STORE
   OPERAND1-s5
  OP1 VALUE-s5
   OPERAND2-alarm_time_minutes
  OP2 VALUE-0A
    COMMENT-
    ADDRESS-052
      LABEL-
INSTRUCTION-STORE
   OPERAND1-s4
  OP1 VALUE-s4
   OPERAND2-alarm_time_seconds

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -