![]() |
#2
zklhp2012-10-22 18:03
|

;#Mode=DOS
;MASMPlus 单文件代码模板 - 纯 DOS 程序
;--------------------------------------------------------------------
;单个文件需要指定编译模式,否则默认是EXE方式,在系统设置中可以设置默认是DOS还是Windows.
;编译模式自带了DOS/COM/CON/EXE/DLL/LIB这几种,如果有必要,可以更改ide.ini添加新的编译模式
;当然,更好的是创建为一个工程.更方便及易于管理,使用方法:按Ctrl多选->创建工程.必须有多个文件
.model small
.stack 200h
.data
db 'welcome to masm!',0
.CODE
START:
mov ax,@data
mov ds,ax
mov dh,8
mov dl,3
mov cl,2
mov si,0
call show_str
;暂停,任意键关闭
mov ah,1
int 21h
mov ah,4ch ;结束,可以修改al设置返回码
int 21h
show_str:
push ax
push bx
push es
push si
mov ax,0b800h
mov es,ax
mov ax,160
mul dh
mov bx,ax
mov ax,2
mul dl
add bx,ax
mov al,cl
mov cl,0
show0:
mov ch,[si]
jcxz show1
mov es:[bx],ch
mov es:[bx].1,al
inc si
add bx,2
jmp show0
show1:
pop si
pop es
pop bx
pop ax
ret
END START
这个我用MASMplus编译,程序运行前面出现乱码?[attach]65702[/attach];MASMPlus 单文件代码模板 - 纯 DOS 程序
;--------------------------------------------------------------------
;单个文件需要指定编译模式,否则默认是EXE方式,在系统设置中可以设置默认是DOS还是Windows.
;编译模式自带了DOS/COM/CON/EXE/DLL/LIB这几种,如果有必要,可以更改ide.ini添加新的编译模式
;当然,更好的是创建为一个工程.更方便及易于管理,使用方法:按Ctrl多选->创建工程.必须有多个文件
.model small
.stack 200h
.data
db 'welcome to masm!',0
.CODE
START:
mov ax,@data
mov ds,ax
mov dh,8
mov dl,3
mov cl,2
mov si,0
call show_str
;暂停,任意键关闭
mov ah,1
int 21h
mov ah,4ch ;结束,可以修改al设置返回码
int 21h
show_str:
push ax
push bx
push es
push si
mov ax,0b800h
mov es,ax
mov ax,160
mul dh
mov bx,ax
mov ax,2
mul dl
add bx,ax
mov al,cl
mov cl,0
show0:
mov ch,[si]
jcxz show1
mov es:[bx],ch
mov es:[bx].1,al
inc si
add bx,2
jmp show0
show1:
pop si
pop es
pop bx
pop ax
ret
END START
在cmd,改一下前面的东西,编译运行,结果正常,我想是不是masmplus那里的设置错了

[ 本帖最后由 小习小习 于 2012-10-22 18:05 编辑 ]