这个参数怎么传?郁闷ing......:(

vcPlayer 2006-09-25 05:58:53
内嵌汇编,要传一段内存地址给ES:BX,该怎么传?

char pBuf[512];

_asm les bx, pBuf;

上面的语句能行么?还有就是怎么样才能修改段寄存器的值?总是报非法访问错误,郁闷ing......:(!!!!!!!!!

假如pBuf = 0x12345;那么这里ES = 0x1 OR 0x1234? BX = 0x2345 OR 0x5?
...全文
244 13 打赏 收藏 转发到动态 举报
写回复
用AI写文章
13 条回复
切换为时间正序
请发表友善的回复…
发表回复
superarhow 2006-09-27
  • 打赏
  • 举报
回复
直接LEA BX, pBuf就可以了。windows下都是一个段,不需要考虑段地址寄存器的。
limaolinghu 2006-09-27
  • 打赏
  • 举报
回复
我的贴子很少能遇到能提供给所期待的解答的

确实有点拗口
vcPlayer 2006-09-27
  • 打赏
  • 举报
回复
悲哀:(。

看来得回学校学习学习语文了,我的贴子很少能遇到能提供给所期待的解答的。应该是本人的提问水平有大大大大大大大大大大大大大大大大大大大大大大大大大大大大大大大大大大大大大大大大大大大大大大大大大大大大大大大大大大大大大大大大大大大大大大大大大大大大大大大大大大大大大大大大大大大大大大大大大大大大大大大大大大大大大大大大大大大大大大大大大大大大大大大大大大大大大大大大大大大大大大大大大大大大大大大大大大大大大大大大大大大大的问题,哎!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
limaolinghu 2006-09-26
  • 打赏
  • 举报
回复
貌似这里应该用mov 不应该用lea
waterczh 2006-09-26
  • 打赏
  • 举报
回复
MARK

貌似VC不能用LES
limaolinghu 2006-09-26
  • 打赏
  • 举报
回复
vcPlayer(没有星星,努力做太阳!) ( ) 信誉:96 Blog 2006-09-26 09:03:00 得分: 0


我觉得是ES = 0x0001 BX = 0x02345?

========================================

那么ES:BX = 0x2355了,而不是等于0x12345!就是这块郁闷ing.....
========================================

好像段基址需要左移4位与偏移量相加才是物理地址把
vcPlayer 2006-09-26
  • 打赏
  • 举报
回复
谢谢楼上。

正是因为知道了这一点才郁闷。WINDOWS里是FLAT的内存模式,而X86汇编是分段地址,这二者怎么转换?
某鸟 2006-09-26
  • 打赏
  • 举报
回复
建议楼主仔细看看x86汇编里面提到有线性地址,段地址选择符的概念……

很久以前看过的,如今早忘了……呜~

里面提到的段地址选择符似乎……类似c的指针……

说错勿怪~
vcPlayer 2006-09-26
  • 打赏
  • 举报
回复
我觉得是ES = 0x0001 BX = 0x02345?

========================================

那么ES:BX = 0x2355了,而不是等于0x12345!就是这块郁闷ing.....
limaolinghu 2006-09-26
  • 打赏
  • 举报
回复
刚学汇编2天,胡说别在意
内嵌汇编,要传一段内存地址给ES:BX,该怎么传?

char pBuf[512];

_asm les bx, pBuf;//这个我怎么觉得可以阿



假如pBuf = 0x12345;那么这里ES = 0x1 OR 0x1234? BX = 0x2345 OR 0x5?
我觉得是ES = 0x0001 BX = 0x02345

清大家指正
vcPlayer 2006-09-26
  • 打赏
  • 举报
回复
自己顶一下!

WINDOWS中VC编的程序一般工作在RING3级,不能直接修改ES等段寄存器的值。这样的话,根本就不能给ES赋予指定的数值。这是否意味着必须把我的VC程序提升到RING0级之后,才能这样用汇编呢?

强烈希望大家继续顶!!!!!!!!!谢谢了。。。。。。。:)
jixingzhong 2006-09-25
  • 打赏
  • 举报
回复
跳转或分支指令
aa3000 2006-09-25
  • 打赏
  • 举报
回复
帮顶~!

16,472

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC相关问题讨论
社区管理员
  • 基础类社区
  • Web++
  • encoderlee
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

        VC/MFC社区版块或许是CSDN最“古老”的版块了,记忆之中,与CSDN的年龄几乎差不多。随着时间的推移,MFC技术渐渐的偏离了开发主流,若干年之后的今天,当我们面对着微软的这个经典之笔,内心充满着敬意,那些曾经的记忆,可以说代表着二十年前曾经的辉煌……
        向经典致敬,或许是老一代程序员内心里面难以释怀的感受。互联网大行其道的今天,我们期待着MFC技术能够恢复其曾经的辉煌,或许这个期待会永远成为一种“梦想”,或许一切皆有可能……
        我们希望这个版块可以很好的适配Web时代,期待更好的互联网技术能够使得MFC技术框架得以重现活力,……

试试用AI创作助手写篇文章吧