鱼C论坛

 找回密码
 立即注册
查看: 1539|回复: 2

实验9

[复制链接]
发表于 2014-9-28 15:42:09 | 显示全部楼层 |阅读模式

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

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

x
assume cs:codesg, ds:datasg, ss:stacksg

datasg segment
       db'welcome to masm!'  ;si索引,di定位
           db 02h,24h,71h  ;bx索引
datasg ends

stacksg segment
       dw 8 dup(0)  ;存放16位寄存器的值,所以定义为dw
stacksg ends

codesg segment

start: mov ax, datasg
       mov ds, ax  
       mov ax, stacksg
       mov ss, ax        
       mov sp,10h  ;指向栈顶指针
           
           mov ax, 0b872h   ;要往ax处写入数据
       mov bx, 0 ;存放属性        
           
           mov cx, 3           
s:     push cx   ;最外层循环
       push bx  ;属性偏移位置
         
           mov es, ax   ;往es处写内容
       mov si, 0
           mov di, 0 

       mov cx, 16  ;放入字母ASCII码
s1:    mov ah, [si]    ;一个字节8位
       mov es:[di], ah
       inc si
           add di, 2
           loop s1

           mov di, 1 
           pop bx  ;取出属性
           mov ah, 10h[bx]  ;属性8位
           inc bx  ;属性指向下一位置
           
           mov cx, 16  ;放入属性           
s2:    mov es:[di], ah
       add di, 2 
           loop s2 

           mov ax, es
           add ax, 160  ;下一行
           
       pop cx
       loop s
           
           mov ax,4c00H
           int 21H
           
codesg ends
end start

而且在调试的时候,ah=77,es=b872,di=0,在执行mov es:[di},ah时为什么没有写入显存里?

而且在调试的时候,ah=77,es=b872,di=0,在执行mov es:[di},ah时为什么没有写入显存里?

为什么我的代码只显示了一行?

为什么我的代码只显示了一行?
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2014-9-28 21:36:23 | 显示全部楼层
没有看你的程序,但依我的经验来看,显示位置循的问题(最后面的把前的都覆盖了)
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

头像被屏蔽
发表于 2014-10-31 23:34:31 | 显示全部楼层
提示: 作者被禁止或删除 内容自动屏蔽
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-10-7 02:31

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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