|
马上注册,结交更多好友,享用更多功能^_^
您需要 登录 才可以下载或查看,没有账号?立即注册
x
先感谢 小甲鱼
谢谢小甲鱼无私的分享 谢谢
着我的代码
assume cs:codesg
data segment
db 'welcome to masm!'
db 2H,24H,71H
data ends
stacksg segment
dw 0,0,0,0,0,0,0,0
stacksg ends
codesg segment
start:mov ax,data
mov ds,ax
mov ax,stacksg
mov ss,ax
mov sp,10H
mov di,0
mov ax,0b800H
mov es,ax
mov si,0
mov cx,3
s0:push cx 这里我用了一个嵌套循环 ,3次循环是吧 往显示 内存里面 写入数据 这个动作 重复了 3次
push si 这里我意识到 里面的循环 里 显示内存的偏移地址会一直增加 所以要先保存一下现在的状态
mov bx,0 这里bx归零 也就是 每次都是从头读 welcome to masm!
mov cx,10H
s1:mov al,[bx] 这里循环16次 是把 welcome to masm! 循环 配上 显示属性 装到 显示内存里面
mov ah,[di+10H]
mov es:[si],ax
add si,2
inc bx
loop s1
pop si 这里把没有进入下层 循环 的 显存偏移地址 取出来 方便下面递增用
pop cx
inc di
add si,0a0h
loop s0
mov ax,4c00h
int 21h
codesg ends
end start
再次感谢小甲鱼 无私的分享
还有我用的模拟器 搞完之后 第一行总是不显示 我以为是 我编写的程序有问题
从新写了一个 开头 显存就定义到了 下一行开始
后来发现 重启一下模拟器 再运行 .exe文件就可以了
。。。。。
|
|