| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1352 人关注过本帖
标题:刚学汇编……请教~
只看楼主 加入收藏
songsfly
Rank: 1
来 自:厦门大学
等 级:新手上路
帖 子:44
专家分:0
注 册:2008-11-25
结帖率:100%
收藏
 问题点数:0 回复次数:9 
刚学汇编……请教~
程序代码:
   DATA  SEGMENT
     ASTRING  DB        0AH,0DH,'hello$'
          BE  DB        0FFH
        DATA  ENDS
        CODE  SEGMENT
              ASSUME    DS:DATA,CS:CODE
       MAIN:
              MOV       CX,DATA
              MOV       DS ,CX


              MOV       DX, 0003H
              MOV       AH,09H
              INT       21H
              MOV       AH,4CH
              INT       21H
              MOV       BH ,BE
        CODE  ENDS
              END       MAIN
图片附件: 游客没有浏览图片的权限,请 登录注册


刚刚学汇编,上面是我写的一个测试程序,使用debug 命令查看寄存器的内容
我的问题是:1.各个寄存器的内容为什么是这些数字
            2.一个cpu有多少个AX,多少个BX……?
            请高手赐教
搜索更多相关主题的帖子: 汇编 
2009-11-25 12:45
阿贝
Rank: 2
等 级:论坛游民
威 望:1
帖 子:104
专家分:66
注 册:2009-10-22
收藏
得分:0 
难道寄存器存汉字啊,至于多少个AX,BX 我想没有多少个,而是容量多大。
2009-11-25 13:24
songsfly
Rank: 1
来 自:厦门大学
等 级:新手上路
帖 子:44
专家分:0
注 册:2008-11-25
收藏
得分:0 
回复 2楼 阿贝
我的意思是:为什么存的是这个数,而不是另一个数,我的代码对寄存器造成什么影响???是不是一个cpu只有一个AX一个bx??而不是你说的意思,如果连计算机用机器码来跑我都不懂我也不用学编程了,我知道我的问题很菜,但是我的确是不懂。。。。。

yixiong89921.blog./
2009-11-25 14:03
dbx12358
Rank: 16Rank: 16Rank: 16Rank: 16
等 级:版主
威 望:3
帖 子:37
专家分:141
注 册:2008-11-13
收藏
得分:0 
x86。我们学的8086、8088是一个AX,一个BX。总共14个16位的寄存器。
2009-11-25 17:07
onepc
Rank: 7Rank: 7Rank: 7
等 级:黑侠
威 望:3
帖 子:223
专家分:569
注 册:2009-8-27
收藏
得分:0 
以下是引用songsfly在2009-11-25 14:03:40的发言:

我的意思是:为什么存的是这个数,而不是另一个数,我的代码对寄存器造成什么影响???是不是一个cpu只有一个AX一个bx??而不是你说的意思,如果连计算机用机器码来跑我都不懂我也不用学编程了,我知道我的问题很菜 ...
为什么是这个数,是编译器已给定的一个地址而已,你是把那个段的地址传给cx.
在寄存器中存的都是数字。
2009-11-25 17:18
songsfly
Rank: 1
来 自:厦门大学
等 级:新手上路
帖 子:44
专家分:0
注 册:2008-11-25
收藏
得分:0 
回复 4楼 dbx12358
多谢版主

yixiong89921.blog./
2009-11-25 18:44
songsfly
Rank: 1
来 自:厦门大学
等 级:新手上路
帖 子:44
专家分:0
注 册:2008-11-25
收藏
得分:0 
以下是引用onepc在2009-11-25 17:18:51的发言:

为什么是这个数,是编译器已给定的一个地址而已,你是把那个段的地址传给cx.
在寄存器中存的都是数字。



我的代码中有
 MOV       CX,DATA
              MOV       DS ,CX


              MOV       DX, 0003H
              MOV       AH,09H

按理DS=CX啊,而途中显示的是DS=0BA0,CX=02E4    ,而且mov dx,0003h这条指令不是应该将DX=0003H了么为何图中是dx=0000呢?还望版主解答啊~

yixiong89921.blog./
2009-11-25 18:48
dbx12358
Rank: 16Rank: 16Rank: 16Rank: 16
等 级:版主
威 望:3
帖 子:37
专家分:141
注 册:2008-11-13
收藏
得分:0 
MOV       CX,DATA
              MOV       DS ,CX

应该是把DATA的段基址送到DS
 MOV       DX, 0003H
              MOV       AH,09H
这样把操作数送进DX和AH 你的显示问题,我不知道怎么回事。
你可以用中断,在DOS里面看一下。注意显示的都是对应的ascii码。
2009-11-25 23:08
taan3325
Rank: 1
等 级:新手上路
帖 子:4
专家分:0
注 册:2009-12-1
收藏
得分:0 
那个地址就是电脑根据当前电脑内存占用情况,分配的
2009-12-01 15:02
fgchg911
Rank: 4
等 级:业余侠客
威 望:1
帖 子:131
专家分:204
注 册:2009-9-6
收藏
得分:0 
我在windbg里调试程序时发现,寄存器有
85个,
2009-12-20 02:03
快速回复:刚学汇编……请教~
数据加载中...
 
   



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

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