实验9
问什么我写出来的代码显示不出‘wlcome tomasm’?求大神指点
assume cs:qq,ds:yy,ss:kk
yy segment
db 'wlcome to masm!.'
db 02h,24h,72h
yy endS
kk segment
db 16 dup (0)
kk ends
qq segment
start:
mov ax,yy
mov ds,ax
mov ax,kk
mov ss,ax
mov sp,16
MOV AX,0200h
mov es,ax
mov si,0 ;单词
mov di,17 ; 颜色
mov bx,0 ;换行
mov cx,3 ;
mov bp,0
s:
push cx
mov cx,16
s1:
mov al,ds:
mov es:,al
inc si
mov ah,ds:
mov es:,ah
inc si
inc bp
loop s1
add bx,32
mov si,0
inc di
MOV BP,0
pop cx
LOOP s
mov ax,4c00h
int 21
qq ends
end start
基本没错,细节上有问题,显示内存的段地址是B800,一行是160个字节
assume cs:qq,ds:yy,ss:kk
yy segment
db 'welcome to masm!'
db 02h,24h,72h
yy ends
kk segment
db 16 dup (0)
kk ends
qq segment
start: mov ax,yy
mov ds,ax
mov ax,kk
mov ss,ax
mov sp,16
mov ax,0b800h
mov es,ax
mov si,0
mov di,10h
mov bx,12*160+36h*2
mov cx,3
mov bp,0
s: push cx
mov cx,16
s1: mov al,ds:
mov es:,al
inc si
mov ah,ds:
mov es:,ah
inc si
inc bp
loop s1
add bx,160
mov si,0
inc di
mov bp,0
pop cx
loop s
mov ax,4c00h
int 21h
qq ends
end start
本帖最后由 ︵ゞ痴.想 于 2012-3-14 19:08 编辑
编译过了可以正常显示出代码在下面。。。。
ASSUME CS:QQ,DS:YY,SS:KK
YYSEGMENT
DB 'welcome to masm!' //这里你就打错了。。。
DB 02H,24H,72H
YYENDS
KKSEGMENT
DB 16 DUP (0)
KKENDS
QQSEGMENT
START:
MOV AX,YY
MOV DS,AX
MOV AX,KK
MOV SS,AX
MOV SP,16
MOV AX,0B800H //这个显存位置你也错了
MOV ES,AX
MOV SI,0 ;单词
MOV DI,16 ; 颜色
MOV BX,0 ;换行
MOV CX,3 ;
MOV BP,0
S:
PUSH CX
MOV CX,16
S1:
MOV AL,DS:
MOV ES:.1824,AL //你没换行会出显在第一行
INC SI
MOV AH,DS:
MOV ES:,AH
INC SI
INC BP
LOOP S1
add SI,128
INC DI
MOV BP,0
POP CX
LOOP S
MOV AX,4C00H
INT 21
QQENDS
END START
请使用DOSbox 运行 不然会报错。。。 我也不知道是为什么。。。。 夏洛 发表于 2012-3-14 14:15 static/image/common/back.gif
基本没错,细节上有问题,显示内存的段地址是B800,一行是160个字节
不知道为什么你的代码运行了几次后显示不了‘wlcome to masm!为什么呢 we6540 发表于 2012-3-14 20:08 static/image/common/back.gif
不知道为什么你的代码运行了几次后显示不了‘wlcome to masm!为什么呢
我的电脑可以正常显示,编译连接以后有什么提示么?还是编译连接后,运行不显示文字 程序还是自己打一遍,直接复制容易受影响
页:
[1]