.Net命名空间可以跨多个程序集吗?具体的例子会有所帮助.
我尝试在 FASM 中编译以下代码:
mov DWORD PTR [ebp - 4], 1234567
Run Code Online (Sandbox Code Playgroud)
它给了我一个“无效表达式”错误。但是以下代码有效:
mov DWORD [ebp - 4], 1234567
Run Code Online (Sandbox Code Playgroud)
那么 FASM 是否使用 Intel 语法(我假设第一行代码符合 Intel 语法)?
我正在开发编译器,当我尝试从以下自定义语言代码生成汇编代码时,我遇到了问题
b:=-2;
c:=-4;
a:=c/b;
Run Code Online (Sandbox Code Playgroud)
为了测试这个结果,我使用if条件询问a == 2但是不是.
这是代码avobe生成的代码片段
mov ax, 1
mov _a, ax
mov ax, -2
mov _b, ax
mov ax, -4
mov _c, ax
mov dx, 0
mov ax, _c
mov bx, _b
cmp bx, 0
JE label_div0Excp // jump to division by 0 message
idiv bx
mov @aux0, ax
mov ax, @aux0
mov _a, ax
mov ax, _a
cmp ax,2
JNE label_1
invoke MessageBox, NULL, addr _message0, addr _message0, MB_OK //_message0 say that result == 2
Run Code Online (Sandbox Code Playgroud)
enybody可以帮助我吗? …
我尝试使用 QEmu 从磁盘读取以下代码:
; Read some sectors from the boot disk using our disk_read function
[org 0x7c00]
mov [BOOT_DRIVE] , dl
; BIOS stores our boot drive in DL , so store this for later
mov bp , 0x8000
mov sp , bp
; Here we set our stack safely out of the
; way , at 0x8000
mov bx , 0x9000
; Load 5 sectors to 0 x0000 ( ES ):0 x9000 ( BX )
mov dh , 5 …
Run Code Online (Sandbox Code Playgroud) 老实说,我感到非常困惑,因为我的炸弹第三阶段看起来不像我的任何同学或教授给我的例子。任何帮助将不胜感激。我有我最近使用的终端机的一个副本,但在5个小时的大部分时间内我一直在努力尝试这一点,我已经知道了%d%d是所请求的布局,并且它要求2个数字,我相信其中一个是负数。由于这里有比较语句和jg
0x08048fbb <+39>: cmp $0x1,%eax
0x08048fbe <+42>: jg 0x8048fc5 <phase_3+49>
Run Code Online (Sandbox Code Playgroud)
同样,它要求再次比较同一个值,我认为这是这里的第一个
0x08048fc5 <+49>: cmpl $0x7,-0xc(%ebp)
0x08048fc9 <+53>: ja 0x8049032 <phase_3+158>
Run Code Online (Sandbox Code Playgroud)
让我失望的是,所有的加法和减法都是蝙蝠,总的来说,所有加法和减法都挤在了底部。
我应该在哪里找到可以与这些语句实际一起使用的值,如果我将它们加起来就等于多少。在这一点上,我什至不知道它是否正盯着我。所有比较如下
0x08048fbb <+39>: cmp $0x1,%eax
Run Code Online (Sandbox Code Playgroud)
0x08048fbe <+42>:jg 0x8048fc5
0x08048fc5 <+49>: cmpl $0x7,-0xc(%ebp)
0x08048fc9 <+53>: ja 0x8049032 <phase_3+158>
0x0804903c <+168>: cmpl $0x5,-0xc(%ebp)
0x08049040 <+172>: jg 0x8049047 <phase_3+179>
Run Code Online (Sandbox Code Playgroud)
但目前我需要对此问题重新审视。如果有任何帮助,将不胜感激。
That's number 2. Keep going!
0 1
Breakpoint 1, 0x08048f9a in phase_3 ()
(gdb) disas
Dump of assembler code for function phase_3:
0x08048f94 <+0>: push %ebp
0x08048f95 <+1>: mov %esp,%ebp
0x08048f97 <+3>: …
Run Code Online (Sandbox Code Playgroud) 我目前正在开发一个同时使用 CPU 和 FPU 寄存器的程序集。我的问题涉及如何将寄存器值加载到 FPU 堆栈(即 ecx)。
mov ecx, 10d ; Load 10 into ECX
fldpi ; Load Pi
fild ecx ; This does not work, it does however for .data variables
fmul ; Multiply
Run Code Online (Sandbox Code Playgroud)
任何帮助将不胜感激。我正在使用 Visual Studio 2015/MASM 进行开发,使用 .386 和 .model flat、STDCALL。
最好的问候,Z
是否可以通过启用A20在实模式下使用4GB内存,而无需切换到保护模式,也不会丢失BIOS中断?
我有一个带有3个引用参数的函数,其中包含一些汇编代码.我想在变量R,G,B中得到该函数的结果,如下所示.
void Get_RGB_color(const DWORD &color, uint8_t &R, uint8_t & G, uint8_t & B) {
_asm {
push EAX;
xor EAX, EAX;
mov EAX,color;
mov R, AL;
mov G, AH;
shr EAX, 16;
mov B, AL;
pop EAX;
}
}
Run Code Online (Sandbox Code Playgroud)
例如我使用的函数
DWORD color=RGB(76,0,0);
uint8_t R, G, B;
Get_RGB_color(color , R ,G ,B );
Run Code Online (Sandbox Code Playgroud)
代码有两个问题:
1-在EAX中获取错误的值,行 mov EAX,color;
2-行中错误'操作数大小冲突'
mov R,AL; mov G,AH; mov B,AL;
请帮我
我有一个asp.net web api应用程序,其中我有这一行:
using System.Web.Http.Results;
Run Code Online (Sandbox Code Playgroud)
我的问题是命名空间无法识别,我验证system.Web.Http
了bin文件夹中存在的dll !!
所以我需要知道:
.net asp.net-mvc .net-assembly asp.net-web-api system.web.http
所以我有一个有5个参数的方法.正如预期的那样,寄存器在调用之前就说明了:
$rdi: The receiver
$rsi: the selector for the method
$rdx: first arg
$rcx: second arg
$r8: third arg
$r9: fourth arg
$r10 fifth arg
Run Code Online (Sandbox Code Playgroud)
在该方法中,它首先要做的是调用另一个objective-c方法
这反过来调用objc_msgSend
(见偏移+58):
MyApp`-[GTMOAuth2WindowController webView:resource:willSendRequest:redirectResponse:fromDataSource:]:
0x10044a1a0 <+0>: pushq %rbp
0x10044a1a1 <+1>: movq %rsp, %rbp
0x10044a1a4 <+4>: subq $0x40, %rsp
0x10044a1a8 <+8>: movq 0x10(%rbp), %rax
0x10044a1ac <+12>: movq %rdi, -0x10(%rbp)
0x10044a1b0 <+16>: movq %rsi, -0x18(%rbp)
0x10044a1b4 <+20>: movq %rdx, -0x20(%rbp)
0x10044a1b8 <+24>: movq %rcx, -0x28(%rbp)
0x10044a1bc <+28>: movq %r8, -0x30(%rbp)
0x10044a1c0 <+32>: movq %r9, -0x38(%rbp) …
Run Code Online (Sandbox Code Playgroud)