匯編語言如何取段地址的


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


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM