系统是64位windows7,使用DOSBOX运行MASM,试图编译实验三程序时出错,代码如下:
assume cs:codesg
codesg segment
mov ax,2000
mov ss,ax
mov sp,0
add sp,10
pop ax
pop bx
push ax
push bx
pop ax
pop bx
mov ax,4c00
int 21
codesg ends
end
出错信息如下:
t1.asm(15): error A2107: Non-dight in number
51808 + 464736 Bytes symbol space free
0 Warning Errors
1 Severe Errors
------解决方案--------------------
16 进制数值后面要加上 h 如 2000h 或 4c00 或 21h 等,否则会当做十进制来解释的,通不过编译是小事,实际生成的代码和预想的完全不同导致程序运行出乱后果严重。