求大神帮忙研究一下代码
有两个代码。第一个是小甲鱼老师写的。第二个代码是我自己写的。两个代码执行结果不一样。我找了一下,不知道为什么不一样,
要求:
在DOS下显示三行:'welcome to masm!'
小甲鱼老师的代码。DOS下正确显示,窗口缩小化以后还算可以正常显示,
而我的代码 DOS全屏可以正确显示,但是窗口缩小化后就没有了字母,找不出来那里有问题
先看小甲鱼老师的代码,,,assume cs:code,ds:data,ss:stack
data segment
db 'welcome to masm!'
db 02h,24h,71h
data ends
stack segment
dw 8 dup(0)
stack ends
code segment
start:
mov ax,data
mov ds,ax
mov ax,stack
mov ss,ax
mov sp,10h
xor bx,bx
mov ax,0b872h
mov cx,3
s3: push cx
push ax
push bx
mov es,ax
mov si,0
mov di,0
mov cx,10h
s1: mov al,ds:
mov es:,al
inc si
add di,2
loop s1
mov di,1
pop bx
mov al,ds:10h
inc bx
mov cx,10h
s2: mov es:,al
add di,2
loop s2
pop ax
add ax,0ah
pop cx
loop s3
mov ax,4c00h
int 21h
code ends
end start
接下来是我的代码。思路一样,就是精简了一个循环,
assume cs:a,ds:b,ss:zhan
b segment
db 'welcome to masm!'
db 02h,24h,71h
b ends
zhan segment
dw 16 dup (0)
zhan ends
a segment
rukou:
mov ax,b
mov ds,ax
mov ax,zhan
mov ss,ax
mov sp,32
mov bx,0
mov di,0
mov si,0
mov ax,0b872H
mov cx,3
mov es,ax
s: push bx
push di
push si
push cx
mov ah,
mov cx,16
s1: mov al,
mov es:,ax
add di,2
inc bx
loop s1
pop cx
pop si
inc si
pop di
add di,0a0h
pop bx
loop s
mov ax,4e00h
int 21h
a ends
end rukou
希望大神能帮我看看原因! 路过, 错在结尾处:mov ax,4e00h
程序没有正常退出 和楼上一样感觉,mov ax,4e00h,e改为c,下次楼主提问请用代码专门的上传方法,详情请看公告 虽然我不知道怎么做,不过我还是顶一下楼主{:5_93:} 半年没看,全忘记了 :mad: 数据结构? 大学学过 忘记了 软件编程 都忘记了 {:5_91:}
页:
[1]