如何用完整段模式来编写32位程序呢?

bingking68 2007-07-27 04:45:51
相信大家都知道怎样在MASM的简化段模式来编写32位程序。

本人想问问各位,能否在MASM的完整段模式来编写32位程序呢?
本人也曾尝试过,写了些简单的代码,但一直出现问题,也请各位指点。

代码如下:

CODES SEGMENT 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 DB 01H, 1, 10, 100
WVAR DW 0102H, 1000, 100*100
DVAR DD 01020304H, 100000, 1000000, 10000000
BVAR2 DB 'A', 'ABCD'
DB 0, 0FFH, ?
WVAR2 DW 458H, 0E267H, 0, 0FFFFH
DVAR2 DD 0FC152BH, 0, 0FFFFFFFFH
DVAR3 DD WVAR2
DVAR4 DD BVAR2+2
FVAR DF 010203040506H
QVAR DQ 0102030405060708H, 49216C3BH
TVAR DT 0102030405060708090AH, 1
SBVAR SBYTE -100
SWVAR SWORD -100
SDVAR SDWORD -100
BARRAY BYTE 4 DUP (91)
WARRAY DW 5 DUP (1000)
DARRAY DD 3 DUP (80, 2 DUP (-80))

CODES ENDS
END START
;代码结束。
...全文
114 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
bingking68 2007-07-28
  • 打赏
  • 举报
回复
哦!多谢zara指点。现在明白了!
zara 2007-07-27
  • 打赏
  • 举报
回复
.386 不是简化段定义方面的, 它只是说明了当前程序可以使用的指令集类型.
.model 和简化段定义是有些关系的. 但是, 如果并没有在程序中使用简化段定义格式, 它在这方面的作用就消失了. 只是和 .386 指令一起说明了缺省的段尺寸模式. .model 语句在 .386 前, 缺省为 16 位段; .386 类语句在前的话, 就是 32 位段了.
bingking68 2007-07-27
  • 打赏
  • 举报
回复
谢谢zara的回复。
但是,
.model small
.386
不是都是简化段的指令吗?
那如果要纯完整段的指令,可以怎么写呢?
请指教!
zara 2007-07-27
  • 打赏
  • 举报
回复
楼主这个程序就应该是 dos16 类的吧, use32 是不对的. 不过, 程序开始加上下面的两行后, 是可以使用 32 位寄存器的
.model small
.386

21,458

社区成员

发帖
与我相关
我的任务
社区描述
汇编语言(Assembly Language)是任何一种用于电子计算机、微处理器、微控制器或其他可编程器件的低级语言,亦称为符号语言。
社区管理员
  • 汇编语言
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧