| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 595 人关注过本帖
标题:汇编新手求教关于imul乘法问题
只看楼主 加入收藏
lxb07
Rank: 1
等 级:新手上路
帖 子:2
专家分:0
注 册:2012-12-7
结帖率:0
收藏
已结贴  问题点数:20 回复次数:5 
汇编新手求教关于imul乘法问题
理论上32位数乘32位数结果应该得64位数,高位存在edx,低位存在eax里,

然后汇编的结果与理论值不一样....

求高手解惑~~

代码贴上

图片附件: 游客没有浏览图片的权限,请 登录注册


结果

图片附件: 游客没有浏览图片的权限,请 登录注册


另外,如果我想在C程序中输入两个整数,然后调用汇编子程序对这两个数求积,在主程序中打印计算结果,那么返回值的问题怎么解决呢?edx:eax是两个值.....

新手各种菜,谢谢各位高手解答。
搜索更多相关主题的帖子: 主程序 子程序 
2012-12-07 20:44
有容就大
Rank: 16Rank: 16Rank: 16Rank: 16
来 自:东土大唐
等 级:版主
威 望:74
帖 子:9048
专家分:14309
注 册:2011-11-11
收藏
得分:10 
32位那个函数不懂。坐等大牛。

梅尚程荀
马谭杨奚







                                                       
2012-12-07 22:41
lxb07
Rank: 1
等 级:新手上路
帖 子:2
专家分:0
注 册:2012-12-7
收藏
得分:0 
回复 2楼 有容就大
等的急死我了...明天就要用....这位版主你帮下忙呗...
2012-12-07 22:45
wp231957
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
来 自:神界
等 级:贵宾
威 望:423
帖 子:13688
专家分:53332
注 册:2012-10-18
收藏
得分:10 
如果仅仅是输出 到是可以变通输出
程序代码:
;#Mode=CON
.386
.model flat, stdcall
option casemap :none

include windows.inc
include user32.inc
include kernel32.inc
include masm32.inc

includelib user32.lib
includelib kernel32.lib
includelib masm32.lib
include macro.asm

.data?
    buffer    db 100 dup(?)
.const
   szfmt    db '%X%X',0Dh,0Ah,0
.CODE
START:
   
    xor edx,edx
    mov eax,10000000
    mov ebx,10000000
    cdq
    imul ebx
    invoke wsprintf,addr buffer,addr szfmt,edx,eax
    invoke StdOut,addr buffer
    invoke StdIn,addr buffer,sizeof buffer
    invoke ExitProcess,0
   
end START



[ 本帖最后由 wp231957 于 2012-12-8 07:53 编辑 ]

DO IT YOURSELF !
2012-12-08 07:51
wp231957
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
来 自:神界
等 级:贵宾
威 望:423
帖 子:13688
专家分:53332
注 册:2012-10-18
收藏
得分:0 
输出样例:
D:\MASMPlus\Project\t1>test1
5AF3107A4000
=10进制下的10000000*10000000

DO IT YOURSELF !
2012-12-08 07:52
wp231957
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
来 自:神界
等 级:贵宾
威 望:423
帖 子:13688
专家分:53332
注 册:2012-10-18
收藏
得分:0 
以下是引用lxb07在2012-12-7 20:44:15的发言:


另外,如果我想在C程序中输入两个整数,然后调用汇编子程序对这两个数求积,在主程序中打印计算结果,那么返回值的问题怎么解决呢?edx:eax是两个值.....
   我倒是没有试验,我觉得这样做应该可行,子函数形参返回低32位值  函数本身返回高32位值

DO IT YOURSELF !
2012-12-08 07:57
快速回复:汇编新手求教关于imul乘法问题
数据加载中...
 
   



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

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