鱼C论坛

 找回密码
 立即注册
查看: 2671|回复: 1

[汇编作业] 实验10第一个子程序

[复制链接]
发表于 2020-4-21 22:09:28 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
show_str:   mov ch,0
                        mov ax,0b872h
                        mov bx,460h
                        mov di,04h
                        mov es,ax
                        mov dh,cl
                s:        mov cl,[si]
                        jcxz ok
                        mov al,[si]
                        mov es:[bx+di],al
                        mov es:[bx+di].1,dh
                        inc si
                        add di,2
                        loop s
                       
                ok: ret
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2020-8-17 20:42:45 | 显示全部楼层
;问题
;显示字符串是现实工作中经常要用到的功能,应该编写一个通用的子程序来实现这个功能。我们应该提供
;灵活的调用接口,使调用者可以决定显示的位置(行、列)、内容和颜色
;子程序描述
;名称:show_str
;功能:在指定的位置,用指定的颜色,显示一个用0结束的字符串。
;参数(dh)=行号(取值范围0~24),(dl)=列号(取值范围0~79),
;(cl)=颜色,ds:si指向字符串的首地址。
;返回:无
;应用举例:在屏幕的8行3列,用绿色显示data段中的字符串。

assume cs:code
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:push cx
mov ax,0b800h
mov es,ax
mov al,dh
mov ah,160
mul ah
mov bx,ax
mov al,dl
mov ah,2
mul ah
add bx,ax
mov di,0

s0:mov cl,[si]
mov ch,0
jcxz s
mov al,[si]
pop cx
mov ah,cl
mov es:[bx+di],ax

inc si
add di,2
push cx
jmp short s0

s:ret


code ends
end start
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-11-23 15:16

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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