如何用完整段模式来编写32位程序呢?
相信大家都知道怎样在MASM的简化段模式来编写32位程序。
本人想问问各位,能否在MASM的完整段模式来编写32位程序呢?
本人也曾尝试过,写了些简单的代码,但一直出现问题,也请各位指点。
代码如下:
CODESSEGMENT USE32
ASSUME CS:CODES
START:
MOV AX,CODES
MOV DS,AX
MOV AL,BVAR
MOV AH,BVAR+3
MOV BX,WVAR
MOV CX,WVAR+2
MOV DX,WVAR+3
MOV ESI,DVAR
MOV EDI,DVAR+8
MOV AX,4C00H
INT 21H
BVAR DB01H, 1, 10, 100
WVAR DW0102H, 1000, 100*100
DVAR DD01020304H, 100000, 1000000, 10000000
BVAR2 DB 'A ', 'ABCD '
DB0, 0FFH, ?
WVAR2 DW458H, 0E267H, 0, 0FFFFH
DVAR2 DD0FC152BH, 0, 0FFFFFFFFH
DVAR3 DDWVAR2
DVAR4 DDBVAR2+2
FVAR DF010203040506H
QVAR DQ0102030405060708H, 49216C3BH
TVAR DT0102030405060708090AH, 1
SBVAR SBYTE-100
SWVAR SWORD-100
SDVAR SDWORD-100
BARRAY BYTE4 DUP (91)
WARRAY DW5 DUP (1000)
DARRAY DD3 DUP (80, 2 DUP (-80))
CODESENDS
END START
;代码结束。
[解决办法]
楼主这个程序就应该是 dos16 类的吧, use32 是不对的. 不过, 程序开始加上下面的两行后, 是可以使用 32 位寄存器的
.model small
.386