| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 446 人关注过本帖
标题:一段汇编代码求解释!!!!!
只看楼主 加入收藏
zhu224039
Rank: 8Rank: 8
等 级:贵宾
威 望:17
帖 子:862
专家分:792
注 册:2012-7-29
结帖率:59.52%
收藏
已结贴  问题点数:20 回复次数:1 
一段汇编代码求解释!!!!!
DATA SEGMENT
     DA1 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 编辑 ]
搜索更多相关主题的帖子: 微机原理 
2012-09-19 18:09
zklhp
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
来 自:china
等 级:贵宾
威 望:254
帖 子:11485
专家分:33241
注 册:2007-7-10
收藏
得分:20 
MOV AH,9          ;------------------------》一个简单的mov 指令就能调用  DOS 在显示器上显示的系统功能?

调用的是int 用中断实现的 ah dx里面的相当于参数

上面的那个就是实现了一个压栈 貌似没啥特殊含义罢

哦 不对 这里难道是为了ret实现返回么 我也不知道了。。
2012-09-19 18:12
快速回复:一段汇编代码求解释!!!!!
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.024660 second(s), 8 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved