草庐IT

Assembly-CSharp

全部标签

linux - 来自 Assembly 的 sys_execve 系统调用

asm_execve.s:.section.datafile_to_run:.ascii"/bin/sh".section.text.globlmainmain:pushl%ebpmovl%esp,%ebpsubl$0x8,%esp#arrayoftwopointers.array[0]=file_to_runarray[1]=0movlfile_to_run,%edimovl%edi,-0x4(%ebp)movl$0,-0x8(%ebp)movl$11,%eax#sys_execvemovlfile_to_run,%ebx#filetoexecuteleal-4(%ebp),%ecx

linux - assembly (或 NASM)恼人的问题

我曾经使用TASM(在winXP上)编译我的asm代码,但我遇到了一些麻烦,所以现在我使用NASM(在linux上)。此片段显示了我正在尝试做的事情:(gdb)list3530xorecx,ecx#ecxisacounter31movbl,''#thisiswhatI'mlookingfor32count_spaces:33moval,[esi]#grabachar34jzspaces_counted#isthistheend?35incesi#nextchar36cmpal,bl#foundone?37jnecount_spaces#nope,loop38incecx#yep,inc

assembly - 在 Linux 中哪些寄存器不受用户空间的影响?

我如何找出哪些寄存器受Linux内核保护以防止用户程序集写入它们? 最佳答案 首先,请注意Linux内核本身并没有真正保护寄存器。它所做的只是确保用户应用程序以特权级别3(最低特权)运行。从那时起,就是处理器强制保护寄存器。以下是只能从特权级别0(即从内核)访问的寄存器列表:控制寄存器(CR0-CR4)GDTR、LDTR和IDTR(全局/本地/中断描述符表寄存器)TR(任务寄存器)调试寄存器(DR0-DR7)所有型号特定寄存器(MSR)您应该阅读Intel'sSystemProgrammingManual的第5章有关x86保护的详细

编译器 : Understanding assembly code generated from small programs

我正在自学编译器的工作原理。我通过阅读GCC从小型64位Linux程序生成的代码的反汇编来学习。我写了这个C程序:#includeintmain(){for(inti=0;i使用objdump后我得到:00000000004004d6:4004d6:55pushrbp4004d7:4889e5movrbp,rsp4004da:c745f800000000movDWORDPTR[rbp-0x8],0x04004e1:eb0bjmp4004ee4004e3:c745fc00000000movDWORDPTR[rbp-0x4],0x04004ea:8345f801addDWORDPTR[rb

assembly - 将寄存器加载到自身的指令的目的是什么?

在查看Gameboy的指令集时,我遇到了如下指令:LDA,ALDB,BLDC,CLDD,D...每条指令在thistable中都有自己的操作码。,这让我觉得由于可能的操作码数量的限制,它们有些重要。我首先认为它可能会取消引用该寄存器中的指针并将值存储在该指针(likeinthisquestion)中,但在emulator中,LDA,A实现为:Z80._r.a=Z80._r.a它们似乎对处理器的状态没有影响(只是将寄存器设置为它们自己的值),并且与NOP执行相同的周期数。为什么将这些操作码包含在指令集中以及它们的用途是什么? 最佳答案

assembly - 实模式内存寻址中的段和偏移量是多少?

我正在阅读有关内存寻址的信息。我阅读了有关段偏移的信息,然后阅读了有关描述符偏移的信息。我知道如何在实模式下计算确切的地址。这一切都很好,但我无法理解偏移量到底是什么?我阅读的所有地方:Inrealmode,theregistersareonly16bits,soyoucanonlyaddressupto64k.Inordertoallowaddressingofmorememory,addressesarecalculatedfromsegment*16+offset.这里我可以理解第一行。我们有16位,所以我们最多可以寻址2^16=64k。但是第二行是什么?段代表什么?为什么要乘以

assembly - 字和字节有什么区别?

我做了一些研究。一个字节是8位,一个字是内存中可以寻址的最小单位。单词的确切长度各不相同。我不明白的是有一个字节有什么意义?为什么不说8位?我问了一个教授这个问题,他说现在大多数机器都是字节寻址的,但是那会是什么词呢? 最佳答案 字节:今天,一个字节几乎总是8位。然而,那个wasn'talwaysthecase并且没有“标准”或规定这一点的东西。由于8位是一个方便使用的数字,因此它成为了事实上的标准。字:naturalsizewithwhichaprocessorishandlingdata(寄存器大小)。今天遇到的最常见的字长是8

asp.net - 已导入多个具有相同标识的程序集 : '<in-memory assembly>' and '<in-memory assembly>'

当我尝试启动容器时出现以下错误。这是一个简单的asp.netvnextweb应用程序。我正在尝试将其托管在WindowsServer2016的docker容器中。请指教。System.IO.FileLoadException:Couldnotloadfileorassembly'samplewebapplication'oroneofitsdependencies.GeneralException(ExceptionfromHRESULT:0x80131500)Filename:'samplewebapplication'--->Microsoft.Framework.Runtime.

python - 我应该使用 Python 还是 Assembly 来实现超快速的复制程序

作为维护问题,我需要定期(每年3-5次)复制一个存储库,该存储库现在有超过2000万个文件,总磁盘空间超过1.5TB。我目前正在使用RICHCOPY,但尝试过其他的。RICHCOPY似乎是最快的,但我不相信我已经接近我的XP机器的能力极限。我正在玩弄使用我在汇编语言艺术中读到的内容来编写一个程序来复制我的文件。我的另一个想法是开始学习如何在Python中使用多线程来进行复制。我正在考虑在Assembly中执行此操作的想法,因为它看起来很有趣,但是虽然我的时间并不是非常宝贵,但它足够宝贵,我试图了解我是否会看到足够显着的yield在复制速度。我假设我会,但我才真正开始学习编程18个月,它

c# - 在 C# 中嵌入 IronPython 时出现问题(缺少编译器所需的成员 'Microsoft.CSharp.RuntimeBinder.Binder.InvokeMember'

我正在尝试做一个简单的helloworld来测试在C#中嵌入IronPython,但似乎无法解决这个问题..这是我的C#文件;usingSystem;usingIronPython.Hosting;usingMicrosoft.Scripting;usingMicrosoft.Scripting.Hosting;usingSystem.IO;publicclassdynamic_demo{staticvoidMain(){varipy=Python.CreateRuntime();dynamictest=ipy.UseFile(@"../../Test.py");test.Simple