王爽汇编第2版第九章实验九的一个小问题

qjzl2008 2011-02-03 07:59:22
assume cs:codesg ds:words

words segment
db 'welcome to masm!'
db 7 dup(00000010B)
db 0
db 2 dup(00100100B)
db 0
db 5 dup(00000001B) ; 3种颜色
words ends

codesg segment
start: mov bp,0
mov si,0
mov ax,words
mov ds,ax
mov ax,0b800h
mov es,ax
mov cx,16
mov bx,16
s: mov al,[bp]
mov es:[30+si],al ;字符
mov ah,[bx]
mov es:[31+si],ah ;配色
add bp,2
add si,2
loop s
mov ax,4c00h
int 21h
codesg ends
end start


请高手看下,我这样写有什么问题吗?编译能够通过,但是我执行EXE的时候还是没有出现字串
...全文
62 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
qjzl2008 2011-02-04
  • 打赏
  • 举报
回复
不过也谢楼上了。这个问题基本搞懂了。
znxllyuan 2011-02-03
  • 打赏
  • 举报
回复

哈哈 貌似结贴了
znxllyuan 2011-02-03
  • 打赏
  • 举报
回复
根据你的意思 写的:
assume cs:code,ds:data

data segment
db 'welcome to masm!'
db 7 dup (2)
db 0
db 2 dup (4)
db 0
db 5 dup (1)
data ends

code segment
start:
mov ax,data
mov ds,ax
mov ax,0b800h
mov es,ax
mov bx,30 ;指向显存
mov si,0 ;指向代码段
mov cx,16
BS: mov al,[si+16] ;al为属性值
mov ah,[si] ;ah为字符
mov es:[bx],ah
mov es:[bx+1],al
inc bx
inc bx
inc si
loop bs
mov ax,4c00h
int 21h
code ends
end start
qjzl2008 2011-02-03
  • 打赏
  • 举报
回复
看见2#的了。。。谢这位大哥了···
qjzl2008 2011-02-03
  • 打赏
  • 举报
回复
高位放颜色, 地位放字符,,我是新手,,只知道这样。我稍微改了下,把段地址没省,还改了几个小问题 就好了, 谢谢了····
va_zaixuexi 2011-02-03
  • 打赏
  • 举报
回复
配色的想法还不错,就是有些细节需要处理好.自己比对吧.
assume cs:codesg,ds:words

words segment
db 'welcome to masm!'
db 7 dup(00000010B)
db 0
db 2 dup(00100100B)
db 0
db 5 dup(00000001B) ;3种颜色
words ends

codesg segment
start:
mov bp,0
mov si,0
mov ax,words
mov ds,ax
mov ax,0b800h
mov es,ax
mov cx,16
mov bx,16
s:
mov al,ds:[bp]
mov es:[30+si],al ;字符
mov ah,[bx]
mov es:[31+si],ah ;配色
inc bp
inc bx
add si,2
loop s
mov ax,4c00h
int 21h
codesg ends
end start
znxllyuan 2011-02-03
  • 打赏
  • 举报
回复
assume cs:codesg ds:words
逗号

根本不需要那么多指针
你这些指针把我看晕了 真的!

21,459

社区成员

发帖
与我相关
我的任务
社区描述
汇编语言(Assembly Language)是任何一种用于电子计算机、微处理器、微控制器或其他可编程器件的低级语言,亦称为符号语言。
社区管理员
  • 汇编语言
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧