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