汇编程序在屏幕显示字符

assume cs:code
data segment
db 'Welcome to masm!',0
data ends
stack segment
db 100 dup(0)
stack ends
;以上定义数据段和栈段
code segment
start:
mov dh,18  ;dh来定位行
mov dl,23   ;dl来定位列
mov cl,02h
mov ax,data
mov ds,ax
mov si,0

call show_str   ;调用子程序

mov ax,4c00h
int 21h
;下面是子程序
;========================================
show_str:

mov ax,stack
mov ss,ax
mov sp,100
mov ax,0b800h
mov es,ax
mov al,160
mul dh
mov bx,ax
mov al,2
mul dl
mov di,ax
do:
mov ch,0
push cx              ;将颜色信息保存
mov al,[si]
mov ch,0
mov cl,al
jcxz out_show        ;遇到0就跳出循环
pop cx               ;将颜色信息回复
mov byte ptr es:[bx+di],al          ;写入显卡,将字符显示
mov byte ptr es:[bx+di+1],cl         ;在低位写入颜色信息
inc si
add di,2
jmp short do      ;实现循环操作
out_show:
ret
code ends
end start 

 

做课本的习题上的题目,发表出来,希望能给我提出宝贵的意见

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值