编写一个汇编语言数据编译器小记

本文记录了一天内编写一个类似汇编器的工具,用于处理特定数据格式。程序通过两遍处理源文件,第一遍扫描定义标号和计算地址,第二遍处理数据并写入目标文件。此外,设计了动态缓冲区和输入输出接口以优化处理效率。该过程可作为编译原理的学习实践。
摘要由CSDN通过智能技术生成
    最近有一堆数据要处理,把数据按源文件要求链接成二进制数据,原理就像是汇编器一样。由于找不到适合的工具,于是花一天时间写了一个。要处理的数据源文件如下:

DATA_TAB
    DB        'a', 0x32, 32,"abcd", "say /"hello/n"", "this line just for test."
    DL        LAB_1
    DL        LAB_2
    DL        0x0000
LAB_1
    DL        ITEM_1
    DL        ITEM_2
    DL        ITEM_3
    DL        0x0000
ITEM_1
    DB      "12345678", 0
    DB      "22345678", 0
    DB      "32345678", 0
    DB      "42345678", 0
ITEM_2
    DB      "52345678", 0
    DB      "62345678", 0
LAB_2
    DL        ITEM_21
    DL        ITEM_22
ITEM_22
    DW        0x1234,0x5678


一、语法
    链接器类似于汇编语言的编译器,语法很简单。DB,DW,DL分别表示BYTE,WORD和LONG型,单个字符使用单引表示,字符串使用双引号表示,十六进制以0x开头,特
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值