草庐IT

assembly_datetime

全部标签

linux - 需要了解基本 assembly 的指导

为了掌握如何在汇编中进行一些简单的编程,我涉足了很多。我正在复习一个helloworld程序教程,他们解释的大部分内容都是有道理的,但他们实际上是在掩盖它。我需要一些帮助来理解程序的一些不同部分。这是他们的教程示例-section.textglobalmain;mustbedeclaredforlinker(ld)main:;tellslinkerentrypointmovedx,len;messagelengthmovecx,msg;messagetowritemovebx,1;filedescriptor(stdout)moveax,4;systemcallnumber(sys_w

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

PHP,需要从 DateTime 中减去 12 小时 30 分钟

我有一个PHPDateTime变量。如何在PHP运行时从该日期减少或减去12小时30分钟? 最佳答案 从PHP中的DateTime中减去12小时30分钟:$date=newDateTime();$tosub=newDateInterval('PT12H30M');$date->sub($tosub);P代表期间。T代表时间跨度。参见DateTime,DateTime::sub,和DateInterval在PHP手册中。当然,您必须将DateTime设置为适当的日期和时间。 关于PHP,需

Php: DateTime: 如何只设置秒数(不是小时也不是分钟)

我有一个代码,我必须“四舍五入”到最低分钟数。16:05:00应该变成16:05:0016:05:01应该变成16:05:0016:05:29应该变成16:05:0016:05:30应该变成16:05:0016:05:31应该变成16:05:0016:05:59应该变成16:05:00我想使用DateTime对象。没有以下功能:setHours()setMinutes()setSeconds()这是我的代码的开头:$my_date=DateTime::createFromFormat('Y-m-dH:i:s',$bd_date);$my_date->setTimezone(self::

php - 为什么在我的第二个示例中 DateTime::createFromFormat() 失败并返回一个 bool 值?

当我运行它时,第一个被正确地创建到一个日期中。第二个失败,返回一个boolean,所以我无法格式化。时间是否超出范围?//workscorrectly$startDate="2015-05-0610:49:20.637133";$start=DateTime::createFromFormat('Y-m-dh:m:s.u',$startDate);echo$start->format('m/d/y');//doesn'tworkcorrectly$startDate="2015-05-1215:49:06.821289";$start=DateTime::createFromForma

php - PHPStorm 中未定义的类 DateTime

我想使用DateTime类,但是PHPStorm告诉我“UndefinedclassDateTime”而我的PHP版本是5.5。9-1。我使用的是PHPStorm版本2016.1并且我正在使用Yii2框架(如果它会给你任何有用的信息)。那么如何使用正确的lint默认PHP类? 最佳答案 您需要使用反斜杠\DateTime或添加useDateTime; 关于php-PHPStorm中未定义的类DateTime,我们在StackOverflow上找到一个类似的问题:

php - 将\DateTimeImmutable 转换为\DateTime

如何转换DateTimeImmutable对象变成DateTime对象? 最佳答案 有一个对PHP中的DateTime::createFromImmutable()方法的拉取请求。它已被集成(1,2),只是removed后来无缘无故。现在它似乎又回来了,但仅适用于PHP7.3及更高版本。所以这可能是目前最简单的方法:$dateTime=new\DateTime();$dateTime->setTimestamp($dateTimeImmutable->getTimestamp());如果您需要包含时区信息:$dateTime=new