📄 memory.asm
字号:
NAME MEMORY
;;对于想把一外部存贮器的变量定位可采用如下方法:
;; xseg at 80h
;; varible: ds 2
;;这样VARIBLE 变量就被定位于外部存贮器中了
;;在C语言里声明外部变量时用如下方法:
;; xdata unsigned char varible;即可
public flag1
public key_flag_F,content_disp_F,content_disp_end_F
public at_label,disp_change_F,full_screen_F,mes_list_F,prev_page_F
public flag2
public str_disp_end_F,clear_scr_F,call_disp_F
public now_port_F,pre_port_F,read_mes_F,work_F,led_en_F
public flag3
public backup_prc_F,write_F,store_prc_F,pre_store_prc_F
public COMERR_F,received_mes_F,one_frame_F,send_all_suc_F
public flag4
public led_F,mes_sw_F
public key_data,key_tmr,keyvld,keyvld_old
public disp_mode,disp_mode_old,disp_no_u,disp_no_u_old
public select_position,scr_mes_num,list_num
public content_row,content_col
public mes_list,mes_list_old,last_mes_list,mes_content
public del_mes_p,actual_store_p,actual_fetch_p
public mes_data_p
public font_size,hrx_str,hrx_rd,htx_cnt,rx_byte_cnt
public receive_step
public com_cnt,rx_screen_cnt
public mes_store_p ;;将rx_prc_buff中的内容暂存入mes_data时
;;所指向mes_data的指针
public time_out
public list_str,back_cor,char_cor,select_position_old
public str_row,str_col,main_step,sw_delay
public exit_time
public backup_sec_time,backup_min_time,backup_hour_time
;public backup_step
public backup_mes_ctr_cnt
public write_delay_time
public prc_ctr_block ;;指向存贮信息时从空链表中分配到的内存块
public page_addr
public backup_mes_control_no,read_mes_page_adr
public fresh_time
public watch_dog_time
;;xdata中的0X00开始
public init_code
public local_adr1,local_adr2,local_adr3,local_adr4
public free_tcb_list,disp_tcb_list
;;xdata中的0X80开始
public MES_NULL
;;xdata中的0x100开始
public mes_control ;实际程序处理时,都在这里进行,这里改变
;就得在FLASH中备份,以防掉电时出错
public mes_data ;将接收到的信息先放到这里
public hrx_buff ;将串口接收到的数据放入此中
public htx_buff,rx_prc_buff,num_code,content_list
/*flash memory定义*/
public init_code_b ;该三个代码是用来识别系统复位时需要哪些初始化
public local_adr1_b,local_adr2_b,local_adr3_b,local_adr4_b
public free_tcb_list_b,disp_tcb_list_b
public mes_control_b
public special_addr2,special_addr1
;public test_ram_adr1,test_ram_adr2,test_ram_adr3
;public test_flash_adr1,test_flash_adr2,test_flash_adr3
DSEG AT 2ah
flag1: ds 1
key_flag_F EQU flag1.0
content_disp_F EQU flag1.1
content_disp_end_F EQU flag1.2
at_label EQU flag1.3
disp_change_F EQU flag1.4
full_screen_F EQU flag1.5
mes_list_F EQU flag1.6
prev_page_F EQU flag1.7
flag2: ds 1
str_disp_end_F EQU flag2.0
clear_scr_F EQU flag2.1
call_disp_F EQU flag2.2
now_port_F EQU flag2.3
pre_port_F EQU flag2.4
read_mes_F EQU flag2.5
work_F EQU flag2.6 ;;0:接收卡处于正常接收工作状态
led_en_F EQU flag2.7 ;;1:接收设置本机地址状态
flag3: ds 1
backup_prc_F EQU flag3.0
write_F EQU flag3.1
store_prc_F EQU flag3.2
pre_store_prc_F EQU flag3.3
COMERR_F EQU flag3.4
received_mes_F EQU flag3.5
one_frame_F EQU flag3.6
send_all_suc_F EQU flag3.7
flag4: ds 1
led_F EQU flag4.0
mes_sw_F EQU flag4.1
DSEG AT 30h
key_data: ds 3
key_tmr: ds 1
keyvld: ds 1
keyvld_old: ds 1
disp_mode: ds 1 ;;modify
disp_mode_old: ds 1
disp_no_u: ds 1
disp_no_u_old: ds 1
select_position: ds 1 ;;modify
scr_mes_num: ds 1 ;;modify
list_num: ds 1
content_row: ds 1
content_col: ds 1
DSEG AT 40h
mes_list: ds 2 ;;modify
mes_list_old: ds 2
last_mes_list: ds 2 ;;modify
mes_content: ds 2 ;;modify
del_mes_p: ds 2 ;;modify
actual_store_p: ds 2
actual_fetch_p: ds 2
mes_data_p: ds 2 ;;将rx_prc_buff中的内容暂存入mes_data时
;;所指向mes_data的指针
font_size: ds 1
receive_step: ds 1
hrx_str: ds 2
hrx_rd: ds 2
htx_cnt: ds 1
rx_byte_cnt: ds 1
com_cnt: ds 1
rx_screen_cnt: ds 1
mes_store_p: ds 2
time_out: ds 1
watch_dog_time: ds 2
DSEG AT 60h
list_str: ds 11
back_cor: ds 1
char_cor: ds 1
select_position_old: ds 1
str_row: ds 1
str_col: ds 1
ISEG AT 80h
main_step: ds 1
sw_delay: ds 2
exit_time: ds 2
backup_sec_time: ds 2
backup_min_time: ds 1
backup_hour_time: ds 1
;backup_step: ds 1
backup_mes_ctr_cnt: ds 1
write_delay_time: ds 1
prc_ctr_block: ds 2 ;;指向存贮信息时从空链表中分配到的内存块
page_addr: ds 1
backup_mes_control_no: ds 1
read_mes_page_adr: ds 1
fresh_time: ds 1
;rx_prc_buff: ds 39
;/**** SRAM 和FLASH MEMORY的内存MAP图 ****/
;/* ********************************************************/
;/* FLASH MEMORY */
;/* * first page* *seconde page* *three page* *four page* */
;/* * 0xffff * * 0x1ffff * * 0x2ffff * * 0x3ffff* */
;/* * * * * * * * * */
;/* * 0x1000 * * 0x11000 * * 0x21000 * * 0x31000* */
;/* 其中0X1000 到0XFFFF分成4段,用于对一些重要数据的 */ */
;/* 循环备份,以避免FLASH擦写寿命的限制 */
;/* 从第二页开始进行贮存信息 */
;/* SRAM 区定义变量 共占4K区 0x00-0xfff */
;xseg at 0x00
;test_ram_adr1: ds 1 ;
;xseg at 0x555
;test_ram_adr2: ds 1
;xseg at 0xaaa
;test_ram_adr3: ds 1
xseg at 00h
init_code: ds 3
local_adr1: ds 1
local_adr2: ds 1
local_adr3: ds 1
local_adr4: ds 1
;free_tcb_list: ds 2
;disp_tcb_list: ds 2
xseg at 0x80
MES_NULL: DS 9
xseg at 100h
free_tcb_list: ds 2
disp_tcb_list: ds 2
;xseg at 200h
mes_control: ds 1800 ;实际程序处理时,都在这里进行,这里改变
;就得在FLASH中备份,以防掉电时出错
xseg at 900h
mes_data: ds 512 ;将接收到的信息先放到这里
hrx_buff: ds 120 ;将串口接收到的数据放入此中
htx_buff: ds 7
rx_prc_buff: ds 39
num_code: ds 7
content_list: ds 20
/*flash memory定义*/
xseg at 1000h
init_code_b: ds 3 ;该三个代码是用来识别系统复位时需要哪些初始化
local_adr1_b: ds 1
local_adr2_b: ds 1
local_adr3_b: ds 1
local_adr4_b: ds 1
;free_tcb_list_b: ds 2
;disp_tcb_list_b: ds 2
xseg at 1100h
free_tcb_list_b: ds 2
disp_tcb_list_b: ds 2
mes_control_b: ds 1800;
xseg at 2aaah
special_addr2: ds 1
xseg at 5555h
special_addr1: ds 1
;;xseg at 1000h
;test_flash_adr1: ds 1
;xseg at 0x5555
;test_flash_adr2: ds 1
;xseg at 0xaaaa
;test_flash_adr3: ds 1
end
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -