組合語言如何取段位址的

2021-09-07 15:45:24 字數 662 閱讀 4725

mov ax,1000hmov ds,axmov [0],cs 我不明白他是如何取段位址的,為什麼會取ds段的位址

**段(code段)的段基址是有cpu自動裝入cs段暫存器中,資料段(ds段)和堆疊段(ss段)的段基址要人為在assume指令後裝入,

例如要裝入資料段的段基址可以用

mov ax,data

mov ds,ax

這麼兩條語句讀出並儲存在都是段暫存器中

下邊是一段程式,請自己對照檢視方法

data segment ;資料段定義

indat db 8

data ends

code segment ;**段定義

assumecs:code,ds:data

start:

mov ax,data

mov ds,ax ;初始化ds,也就是將資料段的基位址讀入ds暫存器中

mov dl,indat

or dl,30h

mov ah 2

int 21h

mov dl,'d'

mov ah,2

int 21h

mov ah,4ch

int 21h

code ends

組合語言如何取段位址的

mov ax,1000hmov ds,axmov 0 cs 我不明白他是如何取段位址的,為什麼會取ds段的位址 段 code段 的段基址是有cpu自動裝入cs段暫存器中,資料段 ds段 和堆疊段 ss段 的段基址要人為在assume指令後裝入,例如要裝入資料段的段基址可以用 mov ax,data ...

組合語言 多個段的程式

下面 展示了多段程式,功能是將data中的資料,翻轉儲存 assume cs code,ds data,ss stack data segment dw 0123h,0456h,0789h,0abch,0defh,0fedh,0cbah,0987h data ends stack segment d...

《組合語言》實體地址

段位址應該是乙個邏輯概念,從 組合語言 3.5資料段原文中 比如用123b0h 123b9h 這段記憶體空間來存放資料,我們就可以認為123b0h 123b9h這段記憶體是乙個資料段,它的段位址為123bh,長度為10個byte。從這裡看出段位址指的應該是乙個資料段的起始位置,在 彙編無言 2.7實...