第十章实验10,求高人指点迷津
本帖最后由 decoder 于 2014-5-19 10:30 编辑assume cs:code
data segment
db 'Welcome to masm!',0
data ends
code segment
start: mov dh,8 ;行循环
mov dl,3 ;列循环
mov cl,2 ;cx_0颜色值
mov ax,data ;把data的地址值给ax
mov ds,ax ;ds:0->data
mov si,0;ds:si->data
mov bx,0
callshow_str
mov ax,4c00h
int 21h
show_str: ;mov bp,sp
; push dx;sp=sp-2此时bp与sp相差2
;push cx ;保存颜色值 此时bp与sp相差4 疯了
mov ax,0b80ah
mov es,ax
mov di,10h
mov bx,0
call printcol
ret
display: mov cx,10h;cx=16
mov si,0
;mov ax,ss:;此处索引颜色值
smem: push ds:
pop es: ;打入字符
mov byte ptr es:,2 ;打入颜色无奈
xor ax,ax
inc si
add di,2
loop smem
ret
printline: ;mov dx,ss: ;索引列循环
mov cx,3 ;此处编译器让人很无奈,用Dl赋值就是不行
;mov dx,0
line: push cx
call display
add bx,16 ;填充空格
pop cx
loop line
ret
printcol: ;mov dx,ss: ;索引行循环
mov cx,8 ;此处编译器让人很无奈,用Dh赋值就是不行
printf: push cx
call printline
add di,176 ;换行
pop cx
loop printf
ret
code ends
end start
在栈中索引出错,一直无法正确执行,求高人指点一二
本帖最后由 decoder 于 2014-5-19 11:00 编辑
原来是我没理解题意,这样说来就简单了…… 但是用栈索引的问题还是没有解决,有没有高人可以指点一下呀?
页:
[1]