鱼C论坛

 找回密码
 立即注册
查看: 2137|回复: 0

[技术交流] 实验10(1)纯粹是共享一下我写的代码

[复制链接]
发表于 2017-6-20 10:53:34 | 显示全部楼层 |阅读模式

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

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

x
assume cs:code,ds:data,ss:stack

data segment
db 'Welcome to masm!',0
data ends
stack segment
dw 8 dup(0)
stack ends

code segment
               
start:  mov dh,8        ;显示行
                mov dl,3        ;显示列
                mov cl,2        ;显示颜色
               
                mov ax,data
                mov ds,ax
                mov ax,stack
                mov ss,ax
                mov sp,10h
               
                mov si,0
                call show_str
               
                mov ax,4c00h
                int 21h
        show_str:        push cx                        ;保存颜色数据备用
                                mov al,0ah                ;160就是A0h,因为是偏移地址,所以取十位为0Ah
                                mul dh                        ;8位乘法 al * dh = ax
                                add ax,0b800h        ;算出段地址
                                mov es,ax               
                               
                                mov al,2               
                                mul dl                        ;8位乘法 al * dl = ax
                                mov di,ax                ;算出偏移地址,赋值给显示初始位置di
                               
                        s:        mov cl,byte ptr [si]
                                mov ch,0               
                                jcxz ok                        ;判断内存中是否遇到0
                               
                                mov al,ds:[si]               
                                mov es:[di],al                ;将data段中的数据copy到显存es中
                               
                                pop ax                                ;取出保存的颜色值
                                mov es:[di+1],al        ;将颜色值数据copy到显存es中
                                push ax                                ;再次保存颜色值,备用
                                inc si                               
                                add di,2                       
                                jmp short s
                        ok: ret                                        ;退出
code ends

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

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-4-27 04:06

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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