问题标签 [addressing-mode]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
147 浏览

c++ - 为什么 Visual C++ 2010 使用此汇编语法进行内存寻址?

我使用 Visual C++ 2010 将以下 C++ 代码转换为程序集:

我收到以下输出:

在此处输入图像描述

根据我对内存寻址的理解,内存地址的计算总是放在方括号内,那么为什么_i$在这种情况下放在方括号外呢?

0 投票
1 回答
11275 浏览

assembly - 关于 [base + index*scale + disp] 的几个问题

Intel 和 AT&T 语法中内存寻址的一般形式如下:

我的问题如下:

  • 可以是任何寄存器吗baseindex
  • 可以取什么值scale,是 1、2、4 和 8(默认值为 1)?
  • 是否可以互换(唯一indexdisp区别index是寄存器disp是立即数)?
0 投票
1 回答
619 浏览

assembly - Dealing with the overflow of a 9bit result to an ADD op that is supposed to store in a byte ptr in x86

I am working on a problem for my introductory computer organization course at UCI and we use x86 assembly language in the course (using Visual Studio and the MS syntax). While the problem is for a homework assignment, we are graded on attempts and not the correctness of our answers.

My question is w.r.t indirect memory addressing. The entire question is stated below:

Suppose EBX = 1000 (in decimal) and the byte values stored in the memory addresses 1000 through 1003 are 255, 255, 255, and 255 (in decimal). What effect do the following instructions have (independently) on this area of memory? Assume for multi-byte data, least significant byte is stored in smallest address.

a. ADD byte ptr [EBX], 1

b. ADD word ptr [EBX], 1

c. ADD dword ptr [EBX], 1

I understand that byte ptr [EBX] will load the value 0xFF and that question (A) essentially boils down to ADD 0xFF, 0x01 using a memory address of one byte. However, what I do not understand is how to deal with the overflow caused by '0x100' which would require a minimum of 9 bits to represent.

The two possible solutions I can determine for question (A) ADD byte ptr [EBX], 1 are as follows:

QUESTION: what effect does the overflow of representing a 9 bit result of an ADD operation in a single byte of memory have on any subsequent memory regions, if any

Any insight that anyone could shed on this topic would be greatly appreciated as I was not able to find any x86 specific information that dealt with the overflow of storing a 9 bit number in a single byte of memory.

0 投票
1 回答
275 浏览

javascript - 6502 仿真增强型基本无限循环 $C000 至 $E0ED

我终于达到了我的 6502 仿真器通过了 AllSuiteA.asm 中的所有测试的地步,但我的仿真器无法模拟增强型基本版,我以 C000 美元的价格加载了它。发生的情况是 PC 缓慢攀升至 $C03E,然后 JSR 攀升至 $C892。之后,它稳步上升到 $C908,在那里它再次 JSR 到 $E0ED,然后 JMP 间接到 $0。

尽管 AllSuiteA 说我的模拟器很好,为什么增强型基本无限循环?

以下是相关功能:

操作码:

JSR:

JMP:

寻址模式:

IND:

ABS:

注意:opcode[2] 是正在执行的操作码的字节数

这是正在运行的程序的 JSFiddle。 此小提琴中包含 ehbasic.bin 的十六进制表示。

0 投票
2 回答
5461 浏览

assembly - “mov offset(%rip), %rax”是做什么的?

rax得到偏移量加上这条指令的地址,还是下一条?从微码的角度来看,如果答案是下一条指令,可能会更容易。

0 投票
0 回答
41 浏览

cpu-registers - 包含内存位置的指令中使用的立即寻址模式

假设我们有:

移动 #NUM, R0

我了解主题标签代表一种立即寻址模式。但是,在这种情况下,我不明白R0中究竟存储了什么。它是NUM的实际地址吗?

0 投票
3 回答
9222 浏览

addressing-mode - 基址+偏移寻址模式

我只需要解释基本 + 偏移寻址模式如何工作。很难找到一个明确的答案。(我一直在使用 LC-3,不确定这是否重要)。一个简单的例子也会有所帮助。

谢谢!

0 投票
1 回答
1972 浏览

assembly - x86-64 地址计算在 64 位模式下使用 32 位地址大小

我阅读了有关 64 位模式下地址计算的英特尔手册。假设我们有 64 位模式,默认地址大小为 64 位。还假设有问题的指令前面有地址大小覆盖前缀,因此地址大小变为 32 位。

现在,假设该指令使用寄存器编号 0 (rax/eax/ax ...) 指定的地址对内存操作数进行编码。

现在我不完全理解的是,CPU 是否只查看 eax 值并在内部对其进行零扩展以形成“本机”64 位地址,或者它查看整个 rax 值并将其截断为有效的 32 位范围(例如, rax 包含类似 5Gb 的内容,CPU 将其削减到最大 32 位地址)。

0 投票
1 回答
169 浏览

assembly - Assembly 8086 addressing mode

How does XOR [130][BX][DI], CL work? (I know what XOR does) I mean how is the effective address of the memory part calculated? Which addressing mode is this?

0 投票
3 回答
4471 浏览

addressing-mode - 在 Base + Offset 寻址中,Offset 地址也称为

在 Base + Offset 寻址中,Offset 地址也称为:

(a) 实际地址

(b) 逻辑地址

(c) 实际地址

(d) 指令地址

(e) 这些都不是

请回答它。对我来说可能是(b)或(d)。我对吗?