VS2010自动格式化ASM文件

时间:2013-08-25 18:50:33

标签: visual-studio-2010 visual-studio assembly

我的解决方案中有以下.asm文件:

doTimerAsm PROC EXPORT
pushfd             ; backup flags register (4 Bytes)
pushad             ; bakcup general purpose registers (8*4 Bytes)
mov eax, [esp+24h] ; load interrupt handler pointer
push [esp+28h]     ; push handler parameter
call eax           ; invoke interrupt handler
popad              ; after return from interrupt handler, restore general purpose registers
popfd              ; restore flags register
add esp, 08h       ; pop interrupt handler pointer and the parameter
ret                ; resume
doTimerAsm ENDP

我在它上面运行VS自动格式,希望它只是缩进中间行。欧洲工商管理学院,它产生了以下内容:

doTimerAsm PROC EXPORT
pushfd             ;#1 backup flags register (4 Bytes)
pushad             ;#1 bakcup general purpose registers (8*4 Bytes)
mov eax, [esp+24h] ;#4 load interrupt handler pointer
push [esp+28h]     ;#? push handler parameter
call eax           ;#2 invoke interrupt handler
popad              ;#1 after return from interrupt handler, restore general purpose registers
popfd              ;#1 restore flags register
add esp, 08h       ;#3 pop interrupt handler pointer and the parameter
ret                ;#1 resume
doTimerAsm ENDP

任何人都可以向我解释这些数字(以及?)吗?他们的意思是什么?这是如何自动格式化的?

1 个答案:

答案 0 :(得分:2)

散列后的数字是汇编行的字节大小(如果指令是由汇编程序汇编的话)。 ?表示无法计算大小(在这种情况下,您在[esp+28h]上缺少大小说明符,因此汇编程序无法判断它是字节,单词,双字还是qword)。 / p>