卖狼羔的羊 发表于 2014-1-13 17:27:54

实验10(1)的问题

assume cs:code

data segment

db 'Welcome to masn!',0

data ends


code segment

start:
mov dh,8
mov dl,3
mov cl,2
mov ax,data
mov ds,ax
mov si,0
call show_str


mov ax,4c00h
int 21h

show_str:

mov ax,0b800h   ;显存的段地址
mov es,ax

mov al,0a0h         
mul dh
mov bx,ax         
mov al,2
mul dl   
sub ax,2          
add bx,ax          ;行偏移+列偏移=起始偏移地址 放入bx
mov ah,cl           ;把颜色放入ah
xor cx,cx          ;cx清零
lp:

mov cl,    ;取地址ds:0的数据放到cl中
jcxz exit      ;如果cx=0则跳到exit返回ret
mov al,cl      ;把ds:0放入al ax高位就是颜色 低位就是显示的字符ASCII
mov es:,ax ;放入显存地址b800:
add bx,2       ;偏移地址指向下一列
inc si

loop lp

exit:
ret


code ends

end start

:cry为什么就是显示不出来啊。。实验9也是显示的总有问题。系统是win7 32位系统 用的大内存补丁

lonelykin 发表于 2014-1-14 18:23:43

debug -g命令try - try
页: [1]
查看完整版本: 实验10(1)的问题