📄 pass1.dat
字号:
LABEL-
INSTRUCTION-
OPERAND1-
OPERAND2-
COMMENT-;KCPSM3 Program - Real Time Clock with UART communication.
LABEL-
INSTRUCTION-
OPERAND1-
OPERAND2-
COMMENT-;
LABEL-
INSTRUCTION-
OPERAND1-
OPERAND2-
COMMENT-;Ken Chapman - Xilinx Ltd - October 2003
LABEL-
INSTRUCTION-
OPERAND1-
OPERAND2-
COMMENT-;
LABEL-
INSTRUCTION-
OPERAND1-
OPERAND2-
COMMENT-;
LABEL-
INSTRUCTION-
OPERAND1-
OPERAND2-
COMMENT-;Port definitions
LABEL-
INSTRUCTION-
OPERAND1-
OPERAND2-
COMMENT-;
LABEL-
INSTRUCTION-CONSTANT
OPERAND1-UART_status_port
OPERAND2-00
COMMENT-;UART status input
LABEL-
INSTRUCTION-CONSTANT
OPERAND1-tx_half_full
OPERAND2-01
COMMENT-; Transmitter half full - bit0
LABEL-
INSTRUCTION-CONSTANT
OPERAND1-tx_full
OPERAND2-02
COMMENT-; FIFO full - bit1
LABEL-
INSTRUCTION-CONSTANT
OPERAND1-rx_half_full
OPERAND2-04
COMMENT-; Receiver half full - bit2
LABEL-
INSTRUCTION-CONSTANT
OPERAND1-rx_full
OPERAND2-08
COMMENT-; FIFO full - bit3
LABEL-
INSTRUCTION-CONSTANT
OPERAND1-rx_data_present
OPERAND2-10
COMMENT-; data present - bit4
LABEL-
INSTRUCTION-
OPERAND1-
OPERAND2-
COMMENT-;
LABEL-
INSTRUCTION-CONSTANT
OPERAND1-UART_read_port
OPERAND2-01
COMMENT-;UART Rx data input
LABEL-
INSTRUCTION-
OPERAND1-
OPERAND2-
COMMENT-;
LABEL-
INSTRUCTION-CONSTANT
OPERAND1-UART_write_port
OPERAND2-01
COMMENT-;UART Tx data output
LABEL-
INSTRUCTION-
OPERAND1-
OPERAND2-
COMMENT-;
LABEL-
INSTRUCTION-CONSTANT
OPERAND1-alarm_port
OPERAND2-00
COMMENT-;Alarm output
LABEL-
INSTRUCTION-CONSTANT
OPERAND1-alarm_control
OPERAND2-01
COMMENT-; bit0
LABEL-
INSTRUCTION-
OPERAND1-
OPERAND2-
COMMENT-;
LABEL-
INSTRUCTION-
OPERAND1-
OPERAND2-
COMMENT-;Special Register usage
LABEL-
INSTRUCTION-
OPERAND1-
OPERAND2-
COMMENT-;
LABEL-
INSTRUCTION-NAMEREG
OPERAND1-sF
OPERAND2-UART_data
COMMENT-;used to pass data to and from the UART
LABEL-
INSTRUCTION-
OPERAND1-
OPERAND2-
COMMENT-;
LABEL-
INSTRUCTION-NAMEREG
OPERAND1-sE
OPERAND2-store_pointer
COMMENT-;used to pass location of data in scratch pad memory
LABEL-
INSTRUCTION-
OPERAND1-
OPERAND2-
COMMENT-;
LABEL-
INSTRUCTION-
OPERAND1-
OPERAND2-
COMMENT-;Two registers to form a 16-bit counter used to count
LABEL-
INSTRUCTION-
OPERAND1-
OPERAND2-
COMMENT-;interrupt pulses generated at 1us intervals.
LABEL-
INSTRUCTION-
OPERAND1-
OPERAND2-
COMMENT-;
LABEL-
INSTRUCTION-NAMEREG
OPERAND1-sD
OPERAND2-int_counter_lsb
COMMENT-;lower 8-bits
LABEL-
INSTRUCTION-NAMEREG
OPERAND1-sC
OPERAND2-int_counter_msb
COMMENT-;upper 8-bits
LABEL-
INSTRUCTION-
OPERAND1-
OPERAND2-
COMMENT-;
LABEL-
INSTRUCTION-
OPERAND1-
OPERAND2-
COMMENT-;
LABEL-
INSTRUCTION-
OPERAND1-
OPERAND2-
COMMENT-;Scratch Pad Memory Locations
LABEL-
INSTRUCTION-
OPERAND1-
OPERAND2-
COMMENT-;
LABEL-
INSTRUCTION-
OPERAND1-
OPERAND2-
COMMENT-;
LABEL-
INSTRUCTION-CONSTANT
OPERAND1-us_time_stamp_lsb
OPERAND2-00
COMMENT-;16-bit micro-second time stamp
LABEL-
INSTRUCTION-CONSTANT
OPERAND1-us_time_stamp_msb
OPERAND2-01
COMMENT-
LABEL-
INSTRUCTION-
OPERAND1-
OPERAND2-
COMMENT-;
LABEL-
INSTRUCTION-CONSTANT
OPERAND1-us_time_lsb
OPERAND2-02
COMMENT-;16-bit micro-second real time value
LABEL-
INSTRUCTION-CONSTANT
OPERAND1-us_time_msb
OPERAND2-03
COMMENT-
LABEL-
INSTRUCTION-
OPERAND1-
OPERAND2-
COMMENT-;
LABEL-
INSTRUCTION-CONSTANT
OPERAND1-ms_time_lsb
OPERAND2-04
COMMENT-;16-bit milli-second real time value
LABEL-
INSTRUCTION-CONSTANT
OPERAND1-ms_time_msb
OPERAND2-05
COMMENT-
LABEL-
INSTRUCTION-
OPERAND1-
OPERAND2-
COMMENT-;
LABEL-
INSTRUCTION-CONSTANT
OPERAND1-real_time_hours
OPERAND2-06
COMMENT-;Current clock time
LABEL-
INSTRUCTION-CONSTANT
OPERAND1-real_time_minutes
OPERAND2-07
COMMENT-
LABEL-
INSTRUCTION-CONSTANT
OPERAND1-real_time_seconds
OPERAND2-08
COMMENT-
LABEL-
INSTRUCTION-
OPERAND1-
OPERAND2-
COMMENT-;
LABEL-
INSTRUCTION-CONSTANT
OPERAND1-alarm_time_hours
OPERAND2-09
COMMENT-;Alarm time
LABEL-
INSTRUCTION-CONSTANT
OPERAND1-alarm_time_minutes
OPERAND2-0A
COMMENT-
LABEL-
INSTRUCTION-CONSTANT
OPERAND1-alarm_time_seconds
OPERAND2-0B
COMMENT-
LABEL-
INSTRUCTION-
OPERAND1-
OPERAND2-
COMMENT-;
LABEL-
INSTRUCTION-CONSTANT
OPERAND1-alarm_status
OPERAND2-0C
COMMENT-;Alarm status
LABEL-
INSTRUCTION-CONSTANT
OPERAND1-alarm_active
OPERAND2-01
COMMENT-; bit0 - Alarm is active
LABEL-
INSTRUCTION-CONSTANT
OPERAND1-alarm_armed
OPERAND2-02
COMMENT-; bit1 - Alarm is armed
LABEL-
INSTRUCTION-
OPERAND1-
OPERAND2-
COMMENT-;
LABEL-
INSTRUCTION-CONSTANT
OPERAND1-time_preserve0
OPERAND2-10
COMMENT-;storage for protection of registers
LABEL-
INSTRUCTION-CONSTANT
OPERAND1-time_preserve1
OPERAND2-11
COMMENT-;used by the real time clock routine.
LABEL-
INSTRUCTION-CONSTANT
OPERAND1-time_preserve2
OPERAND2-12
COMMENT-
LABEL-
INSTRUCTION-CONSTANT
OPERAND1-time_preserve3
OPERAND2-13
COMMENT-
LABEL-
INSTRUCTION-CONSTANT
OPERAND1-time_preserve4
OPERAND2-14
COMMENT-
LABEL-
INSTRUCTION-CONSTANT
OPERAND1-time_preserve5
OPERAND2-15
COMMENT-
LABEL-
INSTRUCTION-
OPERAND1-
OPERAND2-
COMMENT-;
LABEL-
INSTRUCTION-
OPERAND1-
OPERAND2-
COMMENT-;UART character strings will be stored in scratch pad memory ending in carriage return.
LABEL-
INSTRUCTION-
OPERAND1-
OPERAND2-
COMMENT-;A string can be up to 16 characters with the start location defined by this constant.
LABEL-
INSTRUCTION-
OPERAND1-
OPERAND2-
COMMENT-;
LABEL-
INSTRUCTION-CONSTANT
OPERAND1-string_start
OPERAND2-20
COMMENT-
LABEL-
INSTRUCTION-
OPERAND1-
OPERAND2-
COMMENT-;
LABEL-
INSTRUCTION-
OPERAND1-
OPERAND2-
COMMENT-;
LABEL-
INSTRUCTION-
OPERAND1-
OPERAND2-
COMMENT-;Initialise the system
LABEL-
INSTRUCTION-
OPERAND1-
OPERAND2-
COMMENT-;
LABEL-
INSTRUCTION-
OPERAND1-
OPERAND2-
COMMENT-;
LABEL-cold_start
INSTRUCTION-LOAD
OPERAND1-s0
OPERAND2-00
COMMENT-;clear all time values
LABEL-
INSTRUCTION-STORE
OPERAND1-s0
OPERAND2-us_time_stamp_lsb
COMMENT-
LABEL-
INSTRUCTION-STORE
OPERAND1-s0
OPERAND2-us_time_stamp_msb
COMMENT-
LABEL-
INSTRUCTION-STORE
OPERAND1-s0
OPERAND2-us_time_lsb
COMMENT-
LABEL-
INSTRUCTION-STORE
OPERAND1-s0
OPERAND2-us_time_msb
COMMENT-
LABEL-
INSTRUCTION-STORE
OPERAND1-s0
OPERAND2-ms_time_lsb
COMMENT-
LABEL-
INSTRUCTION-STORE
OPERAND1-s0
OPERAND2-ms_time_msb
COMMENT-
LABEL-
INSTRUCTION-STORE
OPERAND1-s0
OPERAND2-real_time_hours
COMMENT-
LABEL-
INSTRUCTION-STORE
OPERAND1-s0
OPERAND2-real_time_minutes
COMMENT-
LABEL-
INSTRUCTION-STORE
OPERAND1-s0
OPERAND2-real_time_seconds
COMMENT-
LABEL-
INSTRUCTION-STORE
OPERAND1-s0
OPERAND2-alarm_time_hours
COMMENT-
LABEL-
INSTRUCTION-STORE
OPERAND1-s0
OPERAND2-alarm_time_minutes
COMMENT-
LABEL-
INSTRUCTION-STORE
OPERAND1-s0
OPERAND2-alarm_time_seconds
COMMENT-
LABEL-
INSTRUCTION-STORE
OPERAND1-s0
OPERAND2-alarm_status
COMMENT-;clear and disable alarm
LABEL-
INSTRUCTION-CALL
OPERAND1-alarm_drive
OPERAND2-
COMMENT-;turn off alarm control output port
LABEL-
INSTRUCTION-LOAD
OPERAND1-int_counter_lsb
OPERAND2-00
COMMENT-;clear 'us' interrupt counter
LABEL-
INSTRUCTION-LOAD
OPERAND1-int_counter_msb
OPERAND2-00
COMMENT-
LABEL-
INSTRUCTION-ENABLE
OPERAND1-INTERRUPT
OPERAND2-
COMMENT-;enable the 1us interrupts
LABEL-
INSTRUCTION-
OPERAND1-
OPERAND2-
COMMENT-;
LABEL-
INSTRUCTION-
OPERAND1-
OPERAND2-
COMMENT-;
LABEL-
INSTRUCTION-
OPERAND1-
OPERAND2-
COMMENT-;Start of the main program loop.
LABEL-
INSTRUCTION-
OPERAND1-
OPERAND2-
COMMENT-;
LABEL-
INSTRUCTION-
OPERAND1-
OPERAND2-
COMMENT-;A prompt is transmitted to the UART transmitter and then
LABEL-
INSTRUCTION-
OPERAND1-
OPERAND2-
COMMENT-;a command can be entered and interpreted.
LABEL-
INSTRUCTION-
OPERAND1-
OPERAND2-
COMMENT-;
LABEL-
INSTRUCTION-
OPERAND1-
OPERAND2-
COMMENT-;
LABEL-prompt_input
INSTRUCTION-CALL
OPERAND1-send_prompt
OPERAND2-
COMMENT-;Prompt 'KCPSM3>'
LABEL-
INSTRUCTION-CALL
OPERAND1-receive_string
OPERAND2-
COMMENT-;obtain input string and maintain the time
LABEL-
INSTRUCTION-
OPERAND1-
OPERAND2-
COMMENT-;
LABEL-
INSTRUCTION-
OPERAND1-
OPERAND2-
COMMENT-;
LABEL-
INSTRUCTION-
OPERAND1-
OPERAND2-
COMMENT-;Parse the string and perform actions as required
LABEL-
INSTRUCTION-
OPERAND1-
OPERAND2-
COMMENT-;
LABEL-
INSTRUCTION-
OPERAND1-
OPERAND2-
COMMENT-;
LABEL-
INSTRUCTION-
OPERAND1-
OPERAND2-
COMMENT-;
LABEL-
INSTRUCTION-LOAD
OPERAND1-s1
OPERAND2-string_start
COMMENT-
LABEL-
INSTRUCTION-CALL
OPERAND1-fetch_char_from_memory
OPERAND2-
COMMENT-
LABEL-
INSTRUCTION-COMPARE
OPERAND1-s0
OPERAND2-character_CR
COMMENT-;carriage return does nothing
LABEL-
INSTRUCTION-JUMP
OPERAND1-Z
OPERAND2-prompt_input
COMMENT-
LABEL-
INSTRUCTION-COMPARE
OPERAND1-s0
OPERAND2-character_T
COMMENT-;start of 'TIME' command?
LABEL-
INSTRUCTION-JUMP
OPERAND1-Z
OPERAND2-test_for_TIME
COMMENT-
LABEL-
INSTRUCTION-COMPARE
OPERAND1-s0
OPERAND2-character_A
COMMENT-;start of 'ALARM' command?
LABEL-
INSTRUCTION-JUMP
OPERAND1-Z
OPERAND2-test_for_ALARM
COMMENT-
LABEL-
INSTRUCTION-
OPERAND1-
OPERAND2-
COMMENT-;
LABEL-
INSTRUCTION-
OPERAND1-
OPERAND2-
COMMENT-;trap other command starts here
LABEL-
INSTRUCTION-
OPERAND1-
OPERAND2-
COMMENT-;
LABEL-bad_input_command
INSTRUCTION-CALL
OPERAND1-send_Syntax_Error
OPERAND2-
COMMENT-;no valid command
LABEL-
INSTRUCTION-JUMP
OPERAND1-Z
OPERAND2-prompt_input
COMMENT-
LABEL-
INSTRUCTION-
OPERAND1-
OPERAND2-
COMMENT-;
LABEL-
INSTRUCTION-
OPERAND1-
OPERAND2-
COMMENT-;
LABEL-test_for_TIME
INSTRUCTION-CALL
OPERAND1-fetch_char_from_memory
OPERAND2-
COMMENT-
LABEL-
INSTRUCTION-COMPARE
OPERAND1-s0
OPERAND2-character_I
COMMENT-;test for rest of 'TIME'
LABEL-
INSTRUCTION-JUMP
OPERAND1-NZ
OPERAND2-bad_input_command
COMMENT-
LABEL-
INSTRUCTION-CALL
OPERAND1-fetch_char_from_memory
OPERAND2-
COMMENT-
LABEL-
INSTRUCTION-COMPARE
OPERAND1-s0
OPERAND2-character_M
COMMENT-
LABEL-
INSTRUCTION-JUMP
OPERAND1-NZ
OPERAND2-bad_input_command
COMMENT-
LABEL-
INSTRUCTION-CALL
OPERAND1-fetch_char_from_memory
OPERAND2-
COMMENT-
LABEL-
INSTRUCTION-COMPARE
OPERAND1-s0
OPERAND2-character_E
COMMENT-
LABEL-
INSTRUCTION-JUMP
OPERAND1-NZ
OPERAND2-bad_input_command
COMMENT-
LABEL-
INSTRUCTION-
OPERAND1-
OPERAND2-
COMMENT-;now have a valid TIME command to process
LABEL-
INSTRUCTION-CALL
OPERAND1-fetch_char_from_memory
OPERAND2-
COMMENT-
LABEL-
INSTRUCTION-COMPARE
OPERAND1-s0
OPERAND2-character_CR
COMMENT-;carriage return means display time
LABEL-
INSTRUCTION-JUMP
OPERAND1-NZ
OPERAND2-set_time_command
COMMENT-
LABEL-
INSTRUCTION-CALL
OPERAND1-transmit_time
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -