|
网站首页
|
业界新闻
|
小组
|
威客
|
人才
|
下载频道
|
博客
|
代码贴
|
在线编程
|
编程论坛
|
登录
注册
短消息
我发表的主题
我参与的主题
我收藏的贴子
我上传的附件
我下过的附件
编辑个人资料
我的博客
用户控制面板
搜索
道具
恢复默认风格
碧海青天
秋意盎然
棕红预览
粉色回忆
蓝雅绿
紫色淡雅
青青河草
e点小镇
橘子红了
红红夜思
水晶紫色
雪花飘飘
新年快乐
风格
短消息
论坛展区
帮助
编程论坛
→
开发语言
→
『 汇编论坛 』
→ 求助 关于32位寄存器的用法
我的收件箱(0)
欢迎加入我们,一同切磋技术
用户名:
密 码:
共有
1901
人关注过本帖
标题:
求助 关于32位寄存器的用法
只看楼主
加入收藏
cjj20082008
等 级:
新手上路
帖 子:23
专家分:0
注 册:2007-10-28
楼主
收藏
问题点数:0 回复次数:5
求助 关于32位寄存器的用法
我刚学汇编不久,都是用16位和8位的。
今天遇到一个问题16位的寄存器不够用,我想用32位eax,但是编译的时候,显示eax没有定义。
(王爽老师的那本书没有讲32位的用法)我想了下32位是在.386以后才可以用,就下了个masmplus
但是这个时候编译显示 mov
ax,data 都是错的。(听说32位的汇编和16位的语言不同):L
这个到底是什么问题,应该怎么解决阿?
那位大哥大姐帮忙解决下阿!
搜索更多相关主题的帖子:
寄存器
用法
2007-11-24 17:05
举报帖子
使用道具
赠送鲜花
无理取闹
等 级:
贵宾
威 望:
53
帖 子:4264
专家分:0
注 册:2006-7-26
第
2
楼
收藏
得分:0
都是一样的
是不是你的data定义的不对吧
你那个是什么寻址啊
win32汇编
病毒 加密
目前兴趣所在
2007-11-24 18:15
举报帖子
使用道具
赠送鲜花
蓝色神话
等 级:
论坛游民
威 望:
1
帖 子:404
专家分:24
注 册:2006-5-11
第
3
楼
收藏
得分:0
如果用32位的,好像不用mov ax,data这条语句吧!我学的是32位的,没学16位的。按理说用法差不多,但32位没有“段”这个概念!
2007-11-25 10:48
举报帖子
使用道具
赠送鲜花
永夜的极光
等 级:
贵宾
威 望:
27
帖 子:2721
专家分:1
注 册:2007-10-9
第
4
楼
收藏
得分:0
你的代码拿出来看看吧,是不是前面少了
.386
还有,如果用
.data
.code
这样的方式,那么要写成
mov ax,@data
或者用.startup,会自动设置ds
[[italic] 本帖最后由 永夜的极光 于 2007-11-25 15:42 编辑 [/italic]]
从BFS(Breadth First Study)到DFS(Depth First Study)
2007-11-25 15:40
举报帖子
使用道具
赠送鲜花
cjj20082008
等 级:
新手上路
帖 子:23
专家分:0
注 册:2007-10-28
第
5
楼
收藏
得分:0
我又运行了一下,现在错误没有了,但是数据段的内容不对了,
程序如下:
assume cs:code,ds:data
.386
data segment
list dd 1,1,23 dup(0)
data ends
code segment
start:
mov ax,data
mov ds,ax
mov esi,offset list
mov ecx,24
fib:mov eax,[esi]
add eax,[esi+4]
mov [esi+8],eax
add esi,4
loop fib
mov ax,4c00h
int 21h
code ends
end start
调试的时候,
第一次用u命令:
mov ax,0B59
显示数据段的地址是0B59(开始想插入图片,没有不知到怎么插,没有找到)
用-t 命令的时候,就显示为 ds 0B49,
用-d 0B49:0
查看的内容是乱码
用-d 0B59:0
查看的内容是我定义的数据段的内容
一直用单步执行 运行的时候,0B59:0
得内容不变。
我一直找不到是什么地方出错了。
学习,学习,再学习!!!!!
2007-11-28 00:10
举报帖子
使用道具
赠送鲜花
cjj20082008
等 级:
新手上路
帖 子:23
专家分:0
注 册:2007-10-28
第
6
楼
收藏
得分:0
我又运行了一下,现在错误没有了,但是数据段的内容不对了,
程序如下:
assume cs:code,ds:data
.386
data segment
list dd 1,1,23 dup(0)
data ends
code segment
start:
mov ax,data
mov ds,ax
mov esi,offset list
mov ecx,24
fib:mov eax,[esi]
add eax,[esi+4]
mov [esi+8],eax
add esi,4
loop fib
mov ax,4c00h
int 21h
code ends
end start
调试的时候,
第一次用u命令:
mov ax,0B59
显示数据段的地址是0B59(开始想插入图片,没有不知到怎么插,没有找到)
用-t 命令的时候,就显示为 ds 0B49,
用-d 0B49:0
查看的内容是乱码
用-d 0B59:0
查看的内容是我定义的数据段的内容
一直用单步执行 运行的时候,0B59:0
得内容不变。
我一直找不到是什么地方出错了。
学习,学习,再学习!!!!!
2007-11-28 00:13
举报帖子
使用道具
赠送鲜花
6
1/1页
1
快速回复:
求助 关于32位寄存器的用法
数据加载中...
关于我们
|
广告合作
|
编程中国
|
清除Cookies
|
TOP
|
手机版
编程中国
版权所有,并保留所有权利。
Powered by
Discuz
, Processed in 0.019673 second(s), 10 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved