鱼C论坛

 找回密码
 立即注册
查看: 2208|回复: 3

[技术交流] 实验十

[复制链接]
发表于 2012-7-16 08:19:13 | 显示全部楼层 |阅读模式
1鱼币
assume cs:code,ds:data
data segment
db 'Welcome to masm!',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,160
sub dh,1
mul dh ;结果在AX中
mov bx,ax

sub dl,1
mov al,dl
mov ah,0
add bx,ax ;得到显存的 起始位置....
mov dl,cl
mov si,bx   ;si是显存的偏移地址...
mov di,0  ;di数据库的偏移地址

ks: mov ax,ds:[di]
mov es:[si],ax

mov es:[si+1],dl

mov bl,ds:[di]
mov ch,0
mov bh,0
mov cx,bx
   
jcxz ok
inc di
add si,2

jmp short ks
ok: ret
  
code ends
end start

写出来了,,,开心....没用 push pop   不知道会不会出问题, 改行号和列号,颜色值都没问题....

想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
发表于 2012-7-16 09:24:07 From FishC Mobile | 显示全部楼层
assume cs:code,ds:data
data segment
db 'Welcome to masm!',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
;
;功能:指定位置,指定颜色,显示用0结束的字符串
;
;参数: (dh)=行号,(dl)=列号
;         (cl)=颜色,ds:si指向字符串首地址
;


show_str:


mov ax,0b800h
mov es,ax

mov al,160
sub dh,1
mul dh ;结果在AX中
mov di,ax

sub dl,1
add dl,dl
sub dh,dh

add di,dx
;显存行列地址

mov ah,cl
;方便将字符属性和字符同时送至显存

sub cx,cx
;检测字符用

ks:
mov al,ds:[si]
mov es:[di],ax

mov cl,al

jcxz ok
inc di
add si,2

jmp short ks

ok: ret
  
code ends
end start

这是我对你的程序进行改造的样子,你看如何?
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

 楼主| 发表于 2012-7-16 11:31:25 | 显示全部楼层
mov ah,cl
;方便将字符属性和字符同时送至显存

sub cx,cx
;检测字符用

这思路很不错呢...谢谢分享...不过你这个debug了 结果出错了....

额...上传不了图片....
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2012-7-16 12:13:07 From FishC Mobile | 显示全部楼层
『香`草の゛芭芙 发表于 2012-7-16 11:31
mov ah,cl
;方便将字符属性和字符同时送至显存


额额呃呃。。。。什么错误。。。论述下。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2024-5-1 02:01

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表