小编use*_*531的帖子

汇编程序如何计算符号地址的段和偏移量?

我已经学习了编译器和汇编语言,所以我想编写自己的汇编程序作为练习。但我有一些问题;

如何计算@DATA 或 OFFSET/ADDR VarA 等段的地址?

以一个简单的汇编程序为例:

    .model small
    .stack 1024
    .data
          msg db 128 dup('A')
    .code
    start:
        mov ax,@data
        mov ax,ds
        mov dx, offset msg
                           ; DS:DX points at msg
        mov ah,4ch
        int 21h            ; exit program without using msg
    end
Run Code Online (Sandbox Code Playgroud)

那么汇编器是如何计算段的段地址的@data呢?

它如何知道将什么放入立即数mov dx, offset msg

compiler-construction assembly masm memory-segmentation x86-16

5
推荐指数
1
解决办法
1211
查看次数