Assembly 组合编程中的简单Mov问题
我的程序中有一个小问题,我是一个新手,尝试跟踪英特尔80x86中的程序和cpu寄存器,但问题是当我运行这段代码时Assembly 组合编程中的简单Mov问题,assembly,Assembly,我的程序中有一个小问题,我是一个新手,尝试跟踪英特尔80x86中的程序和cpu寄存器,但问题是当我运行这段代码时 .model small .data array dw 1122H,3344H,5566H,6677H .code mov bx,1 mov si,6 mov ax,array[bx][si-2] AX假设有一个值,但其值为0 任何人都可以告诉运行程序后,AX的值应该是多少 为什么AX没有价值???@RobertHarvey我的问题很简单,一点也不复杂,而且有足够的信息,我真的
.model small
.data
array dw 1122H,3344H,5566H,6677H
.code
mov bx,1
mov si,6
mov ax,array[bx][si-2]
AX
假设有一个值,但其值为0
任何人都可以告诉运行程序后,AX
的值应该是多少
为什么
AX
没有价值???@RobertHarvey我的问题很简单,一点也不复杂,而且有足够的信息,我真的不知道你为什么要暂停我的问题!!>>虽然我试图编辑它,但希望这次我能提供更多信息。你的最后一行没有意义array
是一维数组,但您将其视为二维数组。您希望ax具有什么价值?您需要共享更多代码。我假设您使用的是16位汇编程序,我的第一个猜测是您的DS没有正确初始化,因此您查看的内存区域不正确。查看AX中应该得到的代码0x7755。需要注意的是,我已经多年没有使用16位汇编程序了,但是如果您将寄存器更改为32位等效寄存器,那么在最新版本的masm(ml.exe)中类似的代码也可以工作。