关于我的编程课的另一个问题,实际上是几个。首先,程序已经编写好了,代码可以在下面找到。
问题一:
现在,在说明中明确指出程序可以在保护模式或实地址模式下完成。我相当肯定 Windows 在保护模式下运行,因此这意味着我已经以这种方式完成了练习。如果我愿意,如何改变程序执行的模式?我说 Windows 在保护模式下运行是否正确?
问题2:
我在下面的汇编代码中写了一些注释,说明如何正确填充寄存器的前 16 位?
问题 3:
最后,在最终提交中包含清单文件和地图文件的指令要求,我找不到这些文件。
TITLE Subtracting Three Integers
; This program takes three integers in hexidecimal and then subtract the 2nd and 3rd from the first.
INCLUDE Irvine32.inc
.code
main PROC
mov ax,0109h ;stores integer 265 in ax(16-bit register)
mov bx,0041h ;stores integer 65 in bx(16-bit register)
mov cx,0064h ;stores integer 100 in cx(16-bit register)
sub ax,bx
sub ax,cx
call DumpRegs
comment !
The dump regs returns the value of EAX=763B0064 BAX=7FFD0041 CAX=00000064
because EAX EBX and ECX are 32-bit registers they fill the first 16-bits with
unallocated data from other programs
!
exit
main ENDP
END main