WhyCan Forum(哇酷论坛)

人过留名,雁过留声,感谢各位朋友不离不弃地支持。 QQ: 516333132, 微信: whycan_cn (哇酷网/挖坑网/填坑网) admin@whycan.cn

您尚未登录。

#1 Re: Qt/MSVC/MINGW/C++/MFC/GTK+/Delphi/BCB » X86 指令地址为什么没有对齐?是为了节省空间,还是有其他原因? » 2020-01-11 14:42:08

现代存储技术,指令的对齐与否不重要。
相对于主板,硬盘是块设备,相对于CPU,DDRx是块设备(CPU是整块整块的从DDR里读进的)。CPU内部,还有一个翻译器,把X86指令变成对齐的指令,其实最简单的办法就是直接填充0就可以,也可以用几条指令替换。到这里,才是真正的原始的计算机了,直接对指定地址内的指令操作(显然这小块“内存”是个滑动的窗口)。

#3 Re: Qt/MSVC/MINGW/C++/MFC/GTK+/Delphi/BCB » 大数运算之乘法篇——计算20000的阶乘 » 2019-11-18 03:22:41

晕哥 说:

https://whycan.cn/files/members/3/QQ20181201093927.png

把49行注释起来, 就不会出现内存释放错误, 20000阶乘就算出来了.

------------------------
错不在这!
而是这里
FluxBB bbcode 错误点
改为这样:

char* order(int n)
{
    char temp[16];
    char* res = (char*)"1";    //删除
    char* res = (char*)malloc(32);    //改正后
    for ( ; n > 1; n--)
    {
        sprintf((char*)temp, "%d", n);
        res = mult1(res, (const char*)temp);
    }
    return res;
}

就可以了。

#9 Re: Qt/MSVC/MINGW/C++/MFC/GTK+/Delphi/BCB » X86 指令地址为什么没有对齐?是为了节省空间,还是有其他原因? » 2019-05-07 10:05:55

daydayup 说:
alexyzhov 说:

因为x86指令集在设计的时候就没有固定长度吧,印象中是这样。微架构上还需要一个译码环节,将CISC风格的机器码转换成规整的RISC风格指令执行,此时的指令应该就是定长并且对齐,方便处理器前端的取指了

那就是说 x86 带着历史包袱?
理论上如果对齐的话,效率应该更高吧?

现代CPU是整段整段的读进CPU的,不是一条一条的读的,所以对不对齐效率都一样高。指令译码时已经指令是对齐的了。

#10 Re: 华芯微特,可靠的MCU伙伴 » 松果派PineconePi ONE众筹,华芯微特 SWM320VET7,主频125MHz, 512k Flash,128k SRAM » 2019-05-06 18:39:17

yywyai 说:

外设DMA不能用。NORFLASH不支持手册上宣传的字节, 半字操作。LCD不支持手册上的M68 I80接口。SDIO接口引脚跟SDRAM等引脚冲突,SDRAM也支持字操作。还有些小问题,所以SWM320VET7便宜,但并不好用

听说华芯微特的第二功能是可以重定义的吧。

页脚

Powered by FluxBB