如何在程序集中访问二维数组的元素?
How to access an element of a 2D array in assembly?
如何在汇编中访问二维数组的元素?我找到了一些代码示例,但它们使用的是 edx
和 eax
寄存器,emu8086(仅限 16 位寄存器)不支持这些寄存器。
我想让变量 t 等于 array[0][1] (t = 2).
的值
我应该怎么办?
.8086
.model small
.stack 100h
.data
t dw ?
array dw 1, 2, 3,
dw 4, 5, 6,
dw 7, 8, 9
.code
; ax <- array[0][1]
mov eax, DWORD PTR[array + 8] ; not working
; t <- ax
mov t, eax ; t = 2
I want to make variable t equal to the value of array[0][1] (t = 2).
数组中填满了单词。第一行的第二个元素在数组中的偏移量为 2。
mov ax, [array + 2]
mov [t], ax
根据汇编器的不同,最后一行可能是:
mov t, ax
由于您正在使用 .model small
,您是否设置了 DS
段寄存器?
如果改为.model tiny
,则不需要设置任何段寄存器。
如何在汇编中访问二维数组的元素?我找到了一些代码示例,但它们使用的是 edx
和 eax
寄存器,emu8086(仅限 16 位寄存器)不支持这些寄存器。
我想让变量 t 等于 array[0][1] (t = 2).
的值
我应该怎么办?
.8086
.model small
.stack 100h
.data
t dw ?
array dw 1, 2, 3,
dw 4, 5, 6,
dw 7, 8, 9
.code
; ax <- array[0][1]
mov eax, DWORD PTR[array + 8] ; not working
; t <- ax
mov t, eax ; t = 2
I want to make variable t equal to the value of array[0][1] (t = 2).
数组中填满了单词。第一行的第二个元素在数组中的偏移量为 2。
mov ax, [array + 2]
mov [t], ax
根据汇编器的不同,最后一行可能是:
mov t, ax
由于您正在使用 .model small
,您是否设置了 DS
段寄存器?
如果改为.model tiny
,则不需要设置任何段寄存器。