找回密码
 欢迎注册
查看: 215|回复: 9

[分享] 《64位汇编语言的编程艺术》

[复制链接]
发表于 6 天前 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有账号?欢迎注册

×
昨天在京东上下单了这本书,结果下午就送到了,可能是因为选的是自营的缘故。
很厚的一本,包装的很好,一看就是原装的。
趁着周末,学习起来,对以后的开发有帮助。

点评

感谢提供的电子书,居然是原版的,不是那种扫描版,太好了!  发表于 4 天前
这书并不稀缺啊,电子书可以轻松搞定的,^_^, https://nestwhile.com/res/ebook/  发表于 5 天前
x86汇编?郭老板做什么工作需要用汇编?还是以前的HugeCalc?  发表于 6 天前
毋因群疑而阻独见  毋任己意而废人言
毋私小惠而伤大体  毋借公论以快私情
发表于 6 天前 | 显示全部楼层
x86汇编的的基本指令和操作方式能否直接应用于64位计算?
毋因群疑而阻独见  毋任己意而废人言
毋私小惠而伤大体  毋借公论以快私情
 楼主| 发表于 5 天前 | 显示全部楼层
学习 x64 汇编,确实是与 HugeCalc 开发有关。

因为迟迟等不到 u64*u64-->u128 的 SIMD 指令,
好不容易盼来的 AV512 却又惨遭阉割,
所以,我的 x64 汇编旅程迟迟未能成行。

今年春节期间,我终于打通了一个关键算法步骤,
可以绕开之前一直想要的高级指令,
仅用 AVX2 指令集,即可完成(当然,如有 zmm 寄存器支持,则更好)。

而 AVX2 的普及时间主要集中在 2015 至 2017 年;
现在,AVX2 基本成为 x86 处理器的“标配”。

x64 汇编的的基本指令和操作方式,与 x86 还是有不少区别的,
所以需要系统学习,才能避坑,以及发挥最大功效。

当今时代,获取知识的途径很多,
可看电子书、视频,也可找论坛交流,
但总感觉碎片化,不系统,
所以我仍偏重于挑选高质量的纸质书来看,
而这本书,是我感觉写得比较好的,推荐给大家。

另,我所在的城市,非常方便从图书馆免费借阅书籍,
只要从手机的一个 APP 下单,可以很方便地在指定地铁站取书还书。
毋因群疑而阻独见  毋任己意而废人言
毋私小惠而伤大体  毋借公论以快私情
发表于 5 天前 | 显示全部楼层
现在的新款CPU都支持AVX2 和 AV512吧, 我试了一下我的迷你主机:
  1. cc@Mini:~$ cat /proc/cpuinfo
  2. processor        : 0
  3. vendor_id        : AuthenticAMD
  4. cpu family        : 25
  5. model                : 116
  6. model name        : AMD Ryzen 9 7940HS w/ Radeon 780M Graphics
  7. stepping        : 1
  8. microcode        : 0xa704104
  9. cpu MHz                : 1324.313
  10. cache size        : 1024 KB
  11. physical id        : 0
  12. siblings        : 16
  13. core id                : 0
  14. cpu cores        : 8
  15. apicid                : 0
  16. initial apicid        : 0
  17. fpu                : yes
  18. fpu_exception        : yes
  19. cpuid level        : 16
  20. wp                : yes
  21. flags                : fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush mmx fxsr sse sse2 ht syscall nx mmxext fxsr_opt pdpe1gb rdtscp lm constant_tsc rep_good amd_lbr_v2 nopl xtopology nonstop_tsc cpuid extd_apicid aperfmperf rapl pni pclmulqdq monitor ssse3 fma cx16 sse4_1 sse4_2 x2apic movbe popcnt aes xsave avx f16c rdrand lahf_lm cmp_legacy svm extapic cr8_legacy abm sse4a misalignsse 3dnowprefetch osvw ibs skinit wdt tce topoext perfctr_core perfctr_nb bpext perfctr_llc mwaitx cpb cat_l3 cdp_l3 hw_pstate ssbd mba perfmon_v2 ibrs ibpb stibp ibrs_enhanced vmmcall fsgsbase bmi1 avx2 smep bmi2 erms invpcid cqm rdt_a avx512f avx512dq rdseed adx smap avx512ifma clflushopt clwb avx512cd sha_ni avx512bw avx512vl xsaveopt xsavec xgetbv1 xsaves cqm_llc cqm_occup_llc cqm_mbm_total cqm_mbm_local user_shstk avx512_bf16 clzero irperf xsaveerptr rdpru wbnoinvd cppc arat npt lbrv svm_lock nrip_save tsc_scale vmcb_clean flushbyasid decodeassists pausefilter pfthreshold vgif x2avic v_spec_ctrl vnmi avx512vbmi umip pku ospke avx512_vbmi2 gfni vaes vpclmulqdq avx512_vnni avx512_bitalg avx512_vpopcntdq rdpid overflow_recov succor smca fsrm flush_l1d amd_lbr_pmc_freeze
  22. bugs                : sysret_ss_attrs spectre_v1 spectre_v2 spec_store_bypass srso
  23. bogomips        : 7984.45
  24. TLB size        : 3584 4K pages
  25. clflush size        : 64
  26. cache_alignment        : 64
  27. address sizes        : 48 bits physical, 48 bits virtual
  28. power management: ts ttp tm hwpstate cpb eff_freq_ro [13] [14] [15]
复制代码

点评

AVX512,AMD 反而支持得比较好了,Intel 反而倒行逆施了  发表于 4 天前
毋因群疑而阻独见  毋任己意而废人言
毋私小惠而伤大体  毋借公论以快私情
发表于 5 天前 | 显示全部楼层
kimi说可以用
乘法相关指令
vpmuludq:该指令用于将两个256位的整数向量中的无符号整数相乘。它可以同时处理多个整数的乘法,从而提高超大整数乘法的效率。
vpmullw:对两个256位向量中的低字节进行乘法操作。
vpmulhw:对两个256位向量中的高字节进行乘法操作。
vpmulld:对两个256位向量中的低双字进行乘法操作。
vpmulhuw:对两个256位向量中的高字节进行无符号乘法操作

点评

很遗憾,vpmuludq:u32 * u32 -> u64;vpmulld:s32 * s32 --> low32  发表于 4 天前
毋因群疑而阻独见  毋任己意而废人言
毋私小惠而伤大体  毋借公论以快私情
您需要登录后才可以回帖 登录 | 欢迎注册

本版积分规则

小黑屋|手机版|数学研发网 ( 苏ICP备07505100号 )

GMT+8, 2025-3-14 05:07 , Processed in 0.034112 second(s), 17 queries .

Powered by Discuz! X3.5

© 2001-2025 Discuz! Team.

快速回复 返回顶部 返回列表