小编Ale*_*nze的帖子

如何解读"jmp dword ptr [rel $ 00005e52]"?

我试图在Win64平台中跟踪汇编代码:

当指令执行到:

0000000000402590 FF25525E0000     jmp dword ptr [rel $00005e52]
Run Code Online (Sandbox Code Playgroud)

跳转后,它会去地址:

00000000006B3F90 56               push rsi
Run Code Online (Sandbox Code Playgroud)

jmp指令如何检索跳转到的地址?[rel $ 00005e52]是什么意思?

assembly

2
推荐指数
1
解决办法
1497
查看次数

在C#中我如何获取正在运行的文件的名称?

我想知道如何实际获取正在运行的文件的名称而不是程序集名称,而是在C#.NET中获取文件的名称,

我试过了

System.Reflection.Assembly.GetEntryAssembly().GetName().Name
Run Code Online (Sandbox Code Playgroud)

这给出了程序集的名称,但我正在寻找exe文件的名称.

谢谢!

.net c# reflection .net-assembly

2
推荐指数
1
解决办法
261
查看次数

NASM一次打印一个字符

为什么这个程序没有打印到屏幕上,我在INT 80命令上遗漏了什么?

  section .bss

  section .data
      hello: db "Hello World",0xa      ;10 is EOL

  section .text
      global _start

  _start:

      mov ecx, 0;                      ; int i = 0;
  loop:
      mov dl, byte [hello + ecx]       ; while(data[i] != EOF) {
      cmp dl, 0xa                      ;
      je  exit                         ;
      mov ebx, ecx                     ; store conetents of i (ecx)

      ; Print single character
      mov eax, 4                       ; set sys_write syscall
      mov ecx, byte [hello + ebx]      ; ...
      mov edx, 1                       ; move one byte …
Run Code Online (Sandbox Code Playgroud)

linux assembly nasm

2
推荐指数
1
解决办法
5675
查看次数

在任何程序中,100%的声明覆盖率是否意味着100%的分支覆盖率?

在为练习测试解决MCQ时,我遇到了这样的说法 - "在任何程序中,100%的声明覆盖率意味着100%的分支覆盖率"并且它被称为不正确.我认为这是一个正确的陈述,因为如果我们涵盖所有陈述,那么这意味着我们也涵盖了所有路径,因此也覆盖了所有分支.有人可以对这个问题有所了解吗?

testing code-coverage

2
推荐指数
1
解决办法
5455
查看次数

\ r \n作为UTF8角色的一部分?

是否有可能,某些UTF8符号包含字节0x0D 0x0A,因为它的一部分?如果是的话,这些符号是什么?
(我试图解决的任务是从特定点读取文本UTF8文件,而不是从一开始)

language-agnostic unicode character-encoding

2
推荐指数
1
解决办法
5898
查看次数

装配换行符

我在Assembly(NASM语法)中编写了一个简单的引导加载程序,但是当我在QEMU中运行它时,换行符显示如下:

在此输入图像描述

这是我的代码:

有没有办法阻止0Ah向前推进线路?

.loop_top:

mov si, text_string ; Put string position into SI
call print_string   ; Call our string-printing routine

loop .loop_top

jmp $           ; Jump here - infinite loop!


text_string db "This is my cool new OS!", 0Ah, 0
Run Code Online (Sandbox Code Playgroud)

string x86 assembly

2
推荐指数
1
解决办法
1532
查看次数

如何判断二进制序列是否是x86机器码?

我们都知道,在x86 arch中,数据和代码混合在内存或磁盘中。但如何告诉他们呢?

\n\n

paper\xef\xbc\x8c 需要该方法,我不期望 100% 的准确度。80% 就可以了,甚至一些想法也可以:)

\n

x86 machine-code

2
推荐指数
1
解决办法
271
查看次数

为什么编程语言严格依赖原始类型,而汇编更灵活?

为什么我们没有 4 位大小的数据类型?如果我们如此倾向,为什么我们不能制造它们?我见过位域,但我听说它们不可移植,也许也不常用?我认为这是机器如何解释位位置的位置值的结果。(大端,小端)

typedef struct
{
   int b1  : 1;
   int b2  : 1;
   ..
   ..
   ..
   int b32 : 1;
} bitfield32;
Run Code Online (Sandbox Code Playgroud)

我们也不能制作这样一个比任何原始类型都大的位域。那么为什么要限制呢?可以在组装中完成吗?

c primitive assembly bit-fields

2
推荐指数
1
解决办法
177
查看次数

dw、db 和 是什么意思?(问号)TASM 结构中的意思是什么?

我是汇编新手,现在我试图弄清楚dw、和 中的db、 和?意味着什么struc

例如这里:

struc segment_descriptor
  seg_length0_15        dw      ?
  base_addr0_15         dw      ?
  base_addr16_23        db      ?
  flags                 db      ?
  access                db      ?
  base_addr24_31        db      ?
ends segment_descriptor
Run Code Online (Sandbox Code Playgroud)

x86 assembly tasm

2
推荐指数
1
解决办法
6543
查看次数

程序集 8086 中的 SHR 命令

我得到了以下代码,我想在每一步之后写下观察结果。代码是:

MOV AL,15
MOV AH,0FFH
XOR AL,AL
MOV CL,3
SHR AX,CL
Run Code Online (Sandbox Code Playgroud)

现在唯一让我困惑的是 SHR 命令。我知道它会将 AX 的值移动 3 倍,但它是如何做到的呢?

x86 assembly emu8086

2
推荐指数
1
解决办法
4694
查看次数