免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 1907 | 回复: 6
打印 上一主题 下一主题

[C] unsigned long 64位乘法 [复制链接]

论坛徽章:
3
程序设计版块每日发帖之星
日期:2016-02-13 06:20:00程序设计版块每日发帖之星
日期:2016-06-22 06:20:00程序设计版块每日发帖之星
日期:2016-06-28 06:20:00
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2016-02-26 08:43 |只看该作者 |倒序浏览
提示: 作者被禁止或删除 内容自动屏蔽

论坛徽章:
3
程序设计版块每日发帖之星
日期:2016-02-13 06:20:00程序设计版块每日发帖之星
日期:2016-06-22 06:20:00程序设计版块每日发帖之星
日期:2016-06-28 06:20:00
2 [报告]
发表于 2016-02-26 08:52 |只看该作者
提示: 作者被禁止或删除 内容自动屏蔽

论坛徽章:
15
射手座
日期:2014-11-29 19:22:4915-16赛季CBA联赛之青岛
日期:2017-11-17 13:20:09黑曼巴
日期:2017-07-13 19:13:4715-16赛季CBA联赛之四川
日期:2017-02-07 21:08:572015年亚冠纪念徽章
日期:2015-11-06 12:31:58每日论坛发贴之星
日期:2015-08-04 06:20:00程序设计版块每日发帖之星
日期:2015-08-04 06:20:00程序设计版块每日发帖之星
日期:2015-07-12 22:20:002015亚冠之浦和红钻
日期:2015-07-08 10:10:132015亚冠之大阪钢巴
日期:2015-06-29 11:21:122015亚冠之广州恒大
日期:2015-05-22 21:55:412015年亚洲杯之伊朗
日期:2015-04-10 16:28:25
3 [报告]
发表于 2016-02-26 14:28 |只看该作者
keymirage 发表于 2016-02-26 08:43
在c语言中,如何将2个 64位无符号数相乘并将结果放在一个大小为128位的地址中(我的操作系统是linux 32位) ...

这需要用汇编语言。

论坛徽章:
15
射手座
日期:2014-11-29 19:22:4915-16赛季CBA联赛之青岛
日期:2017-11-17 13:20:09黑曼巴
日期:2017-07-13 19:13:4715-16赛季CBA联赛之四川
日期:2017-02-07 21:08:572015年亚冠纪念徽章
日期:2015-11-06 12:31:58每日论坛发贴之星
日期:2015-08-04 06:20:00程序设计版块每日发帖之星
日期:2015-08-04 06:20:00程序设计版块每日发帖之星
日期:2015-07-12 22:20:002015亚冠之浦和红钻
日期:2015-07-08 10:10:132015亚冠之大阪钢巴
日期:2015-06-29 11:21:122015亚冠之广州恒大
日期:2015-05-22 21:55:412015年亚洲杯之伊朗
日期:2015-04-10 16:28:25
4 [报告]
发表于 2016-02-26 14:31 |只看该作者
  1. cat mula64.s
  2.         .file   "mula.c"
  3.         .text
  4. .globl mula64
  5.         .type   mula64, @function
  6. mula64:
  7. .LFB12:
  8. /*
  9.         imulq   %rsi, %rdi
  10.         movq    %rdi, (%rdx)
  11.         movq    $0, 8(%rdx)
  12. */
  13.         movq    %rdi, %rax          /* rax = a */
  14.         movq    %rdx, %rdi          /* rdi = c */
  15.         mulq   %rsi                /* rdx:rax = rax * b */
  16.         movq    %rax, (%rdi)        /* c[0] = rax */
  17.         movq    %rdx, 8(%rdi)       /* c[1] = rdx */

  18.         ret
  19. .LFE12:
  20.         .size   mula64, .-mula64
  21.         .section        .eh_frame,"a",@progbits
  22. .Lframe1:
  23.         .long   .LECIE1-.LSCIE1
  24. .LSCIE1:
  25.         .long   0x0
  26.         .byte   0x1
  27.         .string "zR"
  28.         .uleb128 0x1
  29.         .sleb128 -8
  30.         .byte   0x10
  31.         .uleb128 0x1
  32.         .byte   0x3
  33.         .byte   0xc
  34.         .uleb128 0x7
  35.         .uleb128 0x8
  36.         .byte   0x90
  37.         .uleb128 0x1
  38.         .align 8
  39. .LECIE1:
  40. .LSFDE1:
  41.         .long   .LEFDE1-.LASFDE1
  42. .LASFDE1:
  43.         .long   .LASFDE1-.Lframe1
  44.         .long   .LFB12
  45.         .long   .LFE12-.LFB12
  46.         .uleb128 0x0
  47.         .align 8
  48. .LEFDE1:
  49.         .ident  "GCC: (GNU) 4.1.2 20070115 (prerelease) (SUSE Linux)"
  50.         .section        .note.GNU-stack,"",@progbits
复制代码

论坛徽章:
15
射手座
日期:2014-11-29 19:22:4915-16赛季CBA联赛之青岛
日期:2017-11-17 13:20:09黑曼巴
日期:2017-07-13 19:13:4715-16赛季CBA联赛之四川
日期:2017-02-07 21:08:572015年亚冠纪念徽章
日期:2015-11-06 12:31:58每日论坛发贴之星
日期:2015-08-04 06:20:00程序设计版块每日发帖之星
日期:2015-08-04 06:20:00程序设计版块每日发帖之星
日期:2015-07-12 22:20:002015亚冠之浦和红钻
日期:2015-07-08 10:10:132015亚冠之大阪钢巴
日期:2015-06-29 11:21:122015亚冠之广州恒大
日期:2015-05-22 21:55:412015年亚洲杯之伊朗
日期:2015-04-10 16:28:25
5 [报告]
发表于 2016-02-26 14:31 |只看该作者
本帖最后由 yulihua49 于 2016-02-26 14:37 编辑
  1. cat mula64.s
  2.         .file   "mula.c"
  3.         .text
  4. .globl mula64
  5.         .type   mula64, @function
  6. mula64:
  7. .LFB12:
  8. /*
  9. C调这个函数:
  10. mula64(long a,long b,long c[2]);

  11.         imulq   %rsi, %rdi
  12.         movq    %rdi, (%rdx)
  13.         movq    $0, 8(%rdx)
  14. */
  15.         movq    %rdi, %rax          /* rax = a */
  16.         movq    %rdx, %rdi          /* rdi = c */
  17.         mulq   %rsi                /* rdx:rax = rax * b */
  18.         movq    %rax, (%rdi)        /* c[0] = rax */
  19.         movq    %rdx, 8(%rdi)       /* c[1] = rdx */

  20.         ret
  21. .LFE12:
  22.         .size   mula64, .-mula64
  23.         .section        .eh_frame,"a",@progbits
  24. .Lframe1:
  25.         .long   .LECIE1-.LSCIE1
  26. .LSCIE1:
  27.         .long   0x0
  28.         .byte   0x1
  29.         .string "zR"
  30.         .uleb128 0x1
  31.         .sleb128 -8
  32.         .byte   0x10
  33.         .uleb128 0x1
  34.         .byte   0x3
  35.         .byte   0xc
  36.         .uleb128 0x7
  37.         .uleb128 0x8
  38.         .byte   0x90
  39.         .uleb128 0x1
  40.         .align 8
  41. .LECIE1:
  42. .LSFDE1:
  43.         .long   .LEFDE1-.LASFDE1
  44. .LASFDE1:
  45.         .long   .LASFDE1-.Lframe1
  46.         .long   .LFB12
  47.         .long   .LFE12-.LFB12
  48.         .uleb128 0x0
  49.         .align 8
  50. .LEFDE1:
  51.         .ident  "GCC: (GNU) 4.1.2 20070115 (prerelease) (SUSE Linux)"
  52.         .section        .note.GNU-stack,"",@progbits
复制代码

论坛徽章:
15
射手座
日期:2014-11-29 19:22:4915-16赛季CBA联赛之青岛
日期:2017-11-17 13:20:09黑曼巴
日期:2017-07-13 19:13:4715-16赛季CBA联赛之四川
日期:2017-02-07 21:08:572015年亚冠纪念徽章
日期:2015-11-06 12:31:58每日论坛发贴之星
日期:2015-08-04 06:20:00程序设计版块每日发帖之星
日期:2015-08-04 06:20:00程序设计版块每日发帖之星
日期:2015-07-12 22:20:002015亚冠之浦和红钻
日期:2015-07-08 10:10:132015亚冠之大阪钢巴
日期:2015-06-29 11:21:122015亚冠之广州恒大
日期:2015-05-22 21:55:412015年亚洲杯之伊朗
日期:2015-04-10 16:28:25
6 [报告]
发表于 2016-02-26 14:42 |只看该作者
一看你就是要玩RSA。

论坛徽章:
0
7 [报告]
发表于 2016-02-26 14:50 |只看该作者
哇瑟!真棒啊!
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP