一段汇编代码求解释!!!!!
DATA SEGMENTDA1 DB 'this is a sample program'
DB 0Dh,0Ah,'$'
DATA ENDS
STACK SEGMENT STACK 'STACK'
ST1 DB 100 DUP(?)
STACK ENDS
CODE SEGMENT
MAIN PROC FAR
ASSUME CS:CODE,DS:DATA,SS:STACK
START MOV AX,STACK ;------------这部分书上说可以实现DOS 返回
MOV SS,AX ; 可这本分代码是将DOS系统 当前的数据段基址和偏移地址存放在了 程序申请的堆栈中了
PUSH DS ;按微机原理来说,DOS装载程序后 其数据都将入栈保护,将CPU的控制交由程序来执行,将DOS的当前数据段基址 DS:0 放到程序 堆栈段 有什么含义呢
MOV AX,0
PUSH AX ;-------------------------
MOV AX,DATA
MOV DS,AX
MOV AH,9 ;------------------------》一个简单的mov 指令就能调用 DOS 在显示器上显示的系统功能?
MOV DX,OFFSET DA1 ;-----------》这个是取 DA1的偏移地址 DS:DX
INT 21H
RET
MAIN ENDP
CODE ENDS
END START
[ 本帖最后由 zhu224039 于 2012-9-19 18:11 编辑 ]