-
3 votesanswersviews
围绕数字的硬件表示我的头脑:一个假设的二进制补码问题
这是一个超级天真的问题(我知道),但我认为这将考虑到如何实现CPU的基本指令集,这将是一个很好的跳跃点: 在二进制补码系统中,您无法反转实现可以表示的最负数的符号 . 理论上的原因很明显,因为否定最负数将超出实施范围(范围总是类似的-128到127) . 但是,当您尝试对最负数进行否定操作时实际发生的情况非常奇怪 . 例如,在8位表示中,最负数是-128或二进制1000 0000 . 通常,要取消... -
0 votesanswersviews
我的翻译语言似乎不识别“”符号并返回错误 . 我的代码出了什么问题?
我编写了一个解释器,它将 String 作为指令集 . 该指令集声明了一组变量并返回其中一个变量 . 示例指令集将是: A = 2 B = 8 C = A + B C 这应该返回变量c并在控制台中打印 10 . 前提条件是左侧必须始终是一个字母,右侧只能包含一个数字或添加两个数字,并且return语句必须始终是一个变量 . 我编写了以下代码来执行此操作: public class Interp... -
7 votesanswersviews
PUSH / POP指令是否被认为是RISC或CISC?
如果 PUSH 和 POP 是RISC或CISC指令,我在接受采访时被问到 . 我说他们是RISC,但他们告诉我他们实际上是CISC指令 . 我建议ARM(一种常见的RISC实现)有这些指令,但他们指出ARM是混合的而不是纯粹的RISC . 我无法在网上找到任何明确的证据 . PUSH 和 POP 指令是否真的被认为是CISC架构的标志,还是可以在RISC系统上找到?为什么? -
5 votesanswersviews
汇编“mov”指令
我通过将c程序与其程序集等效进行比较来学习汇编 . 这是代码 . .file "ex3.c" .section .rodata .LC0: .string "I am %d years old.\n" .LC1: .string "I am %d inches tall.\n" .text .gl... -
20 votesanswersviews
任何汇编语言被认为有用所需的最小指令集是什么?
我正在研究汇编编程,因此我决定尝试在软件中实现"virtual microprocessor",它具有寄存器,标志和RAM,可以使用变量和数组实现 . 但是因为我想模拟 only the most basic behavior of any microprocessor ,我想创建一个只有基本指令的汇编语言,只有那些没有它的指令它不能实现像这样的指令 . 我可以想象一些指令(我... -
6 votesanswersviews
x64指令编码和ModRM字节
编码 call qword ptr [rax] call qword ptr [rcx] 是 FF 10 FF 11 我可以看到最后一个数字(0/1)的来源(寄存器号),但我想弄清楚第二个数字(1)的来源 . 根据AMD64架构程序员手册第3卷:通用和系统指令第56页, “/ digit - 表示ModRM字节仅指定一个寄存器或存储器(r / m)操作数 . 该数字由ModRM寄存器字段指定... -
4 votesanswersviews
指令长度
我正在查看汇编中的不同指令,我对如何决定不同操作数和操作码的长度感到困惑 . 这是你应该从经验中得知的东西,还是有办法找出哪个操作数/运算符组合占用了多少字节? 例如: push %ebp ; takes up one byte mov %esp, %ebp ; takes up two bytes 所以问题是: 在看到给定的指令后,如何推断出其操作码需要多少字节? -
8 votesanswersviews
如何在汇编程序中实现相对JMP(x86)?
在为x86平台构建汇编程序时,我遇到了编码 JMP 指令的一些问题: OPCODE INSTRUCTION SIZE EB cb JMP rel8 2 E9 cw JMP rel16 4 (because of 0x66 16-bit prefix) E9 cd JMP rel32 5 ... (来自我最喜欢的x86指令网站,http:... -
2 votesanswersviews
“int 0x2A”在汇编代码中的含义是什么
有谁知道_1675478_在汇编x86中的指令是什么? 我已经使用它,它只是在寄存器中加载一些随机值 EAX,ECX,EDX 该代码的指令有什么作用? 我看了here 但它似乎没有任何意义 .