注册 登录
编程论坛 汇编论坛

实验10,用MASMPLUS,出现问题?

小习小习 发布于 2012-10-22 17:59, 1054 次点击
程序代码:
;#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]
在cmd,改一下前面的东西,编译运行,结果正常,我想是不是masmplus那里的设置错了

[ 本帖最后由 小习小习 于 2012-10-22 18:05 编辑 ]
8 回复
#2
zklhp2012-10-22 18:03
还不是和那个贴一样的问题

welcome   db 'welcome to masm!',0
……

;mov si,0
lea si, welcome

按理说这样应该没问题了。。


[ 本帖最后由 zklhp 于 2012-10-22 18:04 编辑 ]
#3
小习小习2012-10-22 18:09
试了一下,果然是这样,谢谢Z版
#4
zklhp2012-10-22 18:10
以下是引用小习小习在2012-10-22 18:09:19的发言:

试了一下,果然是这样,谢谢Z版

搞不懂为啥要写成
mov si, 0
然后再加一个数 直接用lea不好么 不知道这里面有什么道道。。。
#5
小习小习2012-10-22 18:11
回复 2楼 zklhp
Z版总是在我们需要的时候出现,在此
#6
zklhp2012-10-22 18:12
以下是引用小习小习在2012-10-22 18:11:14的发言:

Z版总是在我们需要的时候出现,在此

你一放分 我闻着味就来了 我的鼻子跟气相色谱一样。。
#7
小习小习2012-10-22 18:12
以下是引用zklhp在2012-10-22 18:10:36的发言:


搞不懂为啥要写成
mov si, 0
然后再加一个数 直接用lea不好么 不知道这里面有什么道道。。。
初学,没看到LEA这个指令,王老师的书上又是这样的,所以就。。。
#8
zklhp2012-10-22 18:14
以下是引用小习小习在2012-10-22 18:12:46的发言:

初学,没看到LEA这个指令,王老师的书上又是这样的,所以就。。。

后面肯定会讲你放心罢
#9
小习小习2012-10-22 18:17
回复 6楼 zklhp
呵呵,这鼻子咋炼成的
1