丶Mr.CR800 发表于 2013-12-21 09:53:25

一个小细节 关于show_str

为什么 dl 不减1.我觉得第1列是 00-01第n列 是2(n-1) - 2n-1不是么?
为什么王爽的答案和 小甲鱼的都没有 dec dl?
理解问题么? 我觉得在某行某列 显示肯定是包括那行那列 开始的

昵称Jin 发表于 2013-12-21 10:34:55

为什么我没有看懂楼主是想表达什么意思了?

丶Mr.CR800 发表于 2013-12-23 22:18:54

ryan0632 发表于 2013-12-21 10:44 static/image/common/back.gif
同样表示没看懂你问的什么,提问贴代码上来

实验10 编写子程序
1.显示字符串
;名称:show_str
;功能:在屏幕的指定位置,用指定颜色,显示一个用0结尾的字符串
;参数:(dh)=行号,(dl)=列号(取值范围0~80),(cl)=颜色,ds:si:该字符串的首地址 ;返回:显示在屏幕上
assume cs:daima
shuju segment
db 'fghfghf',0
shuju ends

daima segment
kaishi:
mov dh,8
mov dl,21
mov cl,2
mov ax,shuju
mov ds,ax
mov si,0
call
show_str
mov ax,4c00h int 21h
;---------------------------- show_str:
push ax
push cx
push dx
push es
push si
push di
mov ax,0b800h
mov es,ax
dec dh
(为什么这里没有dec dl)

mov al,160
mul dh
add dl,dl
mov dh,0 计算显示在屏幕位置
add ax,dx
mov di,ax
mov ah,cl
x:
mov cl,ds:
mov ch,0
jcxz f
mov al,cl
mov es:,ax
inc si
inc di
inc di
jmp x
f: pop di
pop si
pop es
pop dx
pop cx
pop ax
ret
;------------------------
daima ends
end kaishi

立志当学霸! 发表于 2013-12-23 22:27:13

我表示你在玩我们吗? 2(n-1) - 2n-1=1不管任何n值都是如此,1=1,我理解不了你的意思

立志当学霸! 发表于 2013-12-23 22:32:42

小甲鱼的代码里面有sub ax,2 这个就是定位列的位置。懂了吗。
页: [1]
查看完整版本: 一个小细节 关于show_str