Assembly 汇编x86-变量的内存寻址(检查我的答案)
假设内存中的起始地址是F000H,那么var2、var3的地址是什么,并绘制每个数组在内存段中的样子 我的尝试: var1=F000H var2=F000H+16=F010H var3=F000H+16+10=F01AH 这些是正确的吗 这一部分呢Assembly 汇编x86-变量的内存寻址(检查我的答案),assembly,x86,Assembly,X86,假设内存中的起始地址是F000H,那么var2、var3的地址是什么,并绘制每个数组在内存段中的样子 我的尝试: var1=F000H var2=F000H+16=F010H var3=F000H+16+10=F01AH 这些是正确的吗 这一部分呢 我的答案正确吗?具有负值的单词内存变量,例如-12被符号扩展到16位,例如FFF4,其字节在内存中存储颠倒(由于小端结构) 为了检查你们的家庭作业,你们应该让你们的汇编程序生成清单文件。 我创建了这个源文件mostfa.asm: .DATA var
我的答案正确吗?具有负值的单词内存变量,例如
-12
被符号扩展到16位,例如FFF4
,其字节在内存中存储颠倒(由于小端结构)
为了检查你们的家庭作业,你们应该让你们的汇编程序生成清单文件。
我创建了这个源文件mostfa.asm
:
.DATA
var1 DD 0XADCAEF87, -33, 33, 0X33
var2 DW -12, 1100B,765oct,33h,-154
var3 times 3 db "AB",1,10b,"12"
并使用生成清单mostfa.asm.lst
的命令euroasm mostfa.asm
对其进行组装:
EUROASM DmpWidth=40, NoWarn=2101
[.DATA]
$ EQU 0F000H
var1 DD 0XADCAEF87, -33, 33, 0X33
var2 DW -12, 1100B,765q,33h,-154
var3 db 3*b "AB",1,10b,"12"
0005到0008101是错误的。删除000C中的0X。“765oct”不是有效的NASM语法。
| | EUROASM DUMPWIDTH=40, NoWarn=2101
|[.DATA] |[.DATA]
|F000: |$ EQU 0F000H
|F000:87EFCAADDFFFFFFF2100000033000000 |var1 DD 0XADCAEF87, -33, 33, 0X33
|F010:F4FF0C00F501330066FF |var2 DW -12, 1100B,765q,33h,-154
|F01A:41424142414201023132 |var3 db 3*b "AB",1,10b,"12"