草庐IT

arm汇编

全部标签

MySql启动错误(Mac系统 安装 mysql-8.0.32-macos13-arm64 后每次点击启动 无法启动) --- 已解决

MySql启动的时候:立即变红!查看日志如下:2023-03-04T14:18:01.089671Z0[System][MY-010910][Server]/usr/local/mysql/bin/mysqld:Shutdowncomplete(mysqld8.0.32)MySQLCommunityServer-GPL.2023-03-04T14:18:10.304169Z0[System][MY-010116][Server]/usr/local/mysql/bin/mysqld(mysqld8.0.32)startingasprocess908022023-03-04T14:18:10.3

windows - Windows 8 x64 上的汇编代码

我是硬件方面的新手,接近使用汇编代码编程。所以我读了一本关于它的书并找到了NASM汇编程序的示例代码:segment.text;codesegmentglobalmain;mustbedeclaredforlinkermain:;telllinkerentrypointmovedx,len;messagelengthmovecx,msg;messagetowritemovebx,1;filedescriptor(stdout)moveax,4;systemcallnumber(sys_write)int0x80;callkernelmoveax,1;systemcallnumber(s

windows - 汇编循环循环太多次

我对汇编很陌生(昨天开始学习)并且遇到循环问题:下面的代码应该打印值0-49,但它打印的是0-49,然后是~20行垃圾(我假设这是堆栈的一部分,其他程序/程序的其他部分正在使用)。我预计问题出在第二个循环.loop,因为它打印了错误的行数,而打印由.loop处理。我正在使用FASM(FlatAssembler)程序来编译它。代码:formatPEconsoleinclude"win32ax.inc"start:movecx,50;numberofloops.mainloop:;fortestingpurposes,justpushes49-0ontothestackpushecx;pu

windows - 为什么这段汇编代码不打印栈顶?

成功制作“Hello,World!”后x86-64中的程序,我想要制作一个可以查看堆栈顶部的程序(无需弹出堆栈,并使用esp寄存器,这样我就可以了解它是如何工作的)。这是NASM中的程序:externGetStdHandle,WriteConsoleA,ExitProcesssection.bssdummyresd1section.text%macroprint3movrcx,%1movrdx,%2movr8,%3movr9,dummypushNULLcallWriteConsoleA%endmacro_start:movrcx,STD_OUTPUT_HANDLEcallGetStdH

windows - 这段汇编代码在做什么 - 写入进程内存

编辑/更新所以我认为让我感到困惑的是:LEAESI,[EBX+8*EAX+4]加载一个地址,但是:LEAESI,[EBX+4]加载内容(值?)而不是地址。这怎么不是取消引用?我也不知道是什么mov[eax+1],ecx是吗?原始问题我正在努力学习阅读汇编,但我开始挣扎了。抱歉,如果有拼写错误,我无法从我的实验室机器上复制。这是来自恶意代码,因此它可能不是最佳的。我想我在某处理解有缺陷,但我就是想不通。var_30=byteptr-30hleaeax,[ebp+esi+var_30]我的理解是,加载有效地址将成为从[basepointer-30h+esi]计算出的任何地址。我不知道esi

linux - 汇编和多核有什么关系?

这很难说/问,所以请耐心等待:当我们看到汇编的输出时,这就是将要在CPU核心上执行的内容。但是,如果一个CPU有多个内核——所有的程序集都是在同一个内核上执行的吗?来自同一程序的程序集会在什么时候开始在不同的内核上执行?所以如果我有(汇编伪):ADDx,y,zSUBp,x,q我如何知道ADD和SUB是否会在同一个内核上执行?这与亲和性有关吗?我以为affinity只是将进程固定到CPU,而不是核心?我问这个是因为我想尝试了解您是否可以合理地预测连续的汇编指令是否在同一个内核上执行,以及我是否可以控制它们只在同一个内核上执行。我想了解如何决定将执行相同的程序代码从一个内核更改为另一个内核

windows - 实现 x86 到 x64 汇编代码切换

我正在研究NtDll如何在x86进程中工作,并且我使用IDAPRO调试了函数NtCreateFile。它的代码如下:moveax,55h;NtCreateFilemovedx,offset_Wow64SystemServiceCall@0;calledx;Wow64SystemServiceCall();retn2ChWow64SystemServiceCall():movedx,largefs:30hmovedx,[edx+464h]testedx,2jzshortloc_7738B5C8int2Eh;DOS2+internal-EXECUTECOMMAND;DS:SI->count

windows - 汇编编程和过程调用的问题

我正在使用MASM进行一些汇编编程。当我尝试运行我的程序时,它会在遇到“callmyFunction”时立即崩溃,即使我已经从过程中删除了所有代码。这是我的代码,如有任何帮助,我们将不胜感激。.486.modelflat.stack100hExitProcessPROTONEAR32stdcall,dExitCode:DWORD.code_start:callmyFunctionINVOKEExitProcess,0PUBLIC_startmyFunctionprocnear32myFunctionendpEND 最佳答案 将myF

windows - 不支持为 ARM 平台编译桌面应用程序

我正在visualstudio2013上测试boost1.5.7。当我键入boostrap来构建二进制文件时,我发现boostrap.log中出现以下错误为此,我使用VS2013ARM交叉工具命令提示符。我输入cdC:/boost_1_57_0只需键入bootstrap并点击eneter即可构建boostrap。######Using'vc12'toolset.###C:\boost_1_57_0\boost_1_57_0\tools\build\src\engine>ifexistbootstraprd/S/QbootstrapC:\boost_1_57_0\boost_1_57_0

c - Visual-C++ 内联汇编程序编译不正确

最近我向社区询问了两个偏移量的差异Visual-C++inlineassemblerdifferenceoftwooffsets并很快得到回复,非常感谢。现在我遇到了另一个问题,这个问题更糟。我有这样的指令..naked...__asm{...moveax,dwordptr[ebx+offsetdata1]...}真正的问题是它被编译为moveax,[offsetdata1]此行没有编译器警告(/WAll模式),但代码已更改且更改很多-想象一下,它完全被抛出ebx+部分!默默。它是编译器错误还是功能?也许我必须指定一些额外的标志?问题仅在于偏移量,因为moveax,dwordptr[e