这是实验9的作业,我用自己的方法写了一个,不过逻辑好像有问题,陷入了死循环,
assume cs:code ,ds:date,ss:stackdate segment
db 'welcome to masm '
db 02h,24h,71h
date ends
stack segment
dw 8 dup(0)
stack ends
code segment
start :
mov ax,date
mov ds,ax
mov ax,stack
mov ss,ax
mov sp,10h
mov si,0
mov di,0
mov bx,0
mov cx,3
s:
push cx
mov cx,10h
s0:
mov ax,0b8072h;si是定位数据的,di是定位每个数据的属性的颜色,bx是3*16位数据的首位地址
mov es,ax
mov al,
mov es:,al
mov al,010h
mov es:,al
loop s0
pop cx
inc di
add si,2h
add bx,0a0h
loop s
mov ax,4c00h
int 21h
code ends
end start
【能不能帮忙指出啥地方错了,我找了好久,在线等啊,感激不尽】
我用手机看的你的代码,ax只能存放16个二进制位,你却mov ax,0b8072,直接传输20个二进制位,告诉我,是谁给你这个勇气的!{:5_91:} 1236 发表于 2014-9-14 21:21
我用手机看的你的代码,ax只能存放16个二进制位,你却mov ax,0b8072,直接传输20个二进制位,告诉我,是谁 ...
额,谢了,的确是错了,但是还是有逻辑错误,我找找吧,呜呜,谢谢帮忙 s0循环里si,bx没有递增 thyz1982 发表于 2014-9-14 23:02
s0循环里si,bx没有递增
谢了,不过要是没有递增的话, 它怎么换行 逆流杀 发表于 2014-9-15 07:32
谢了,不过要是没有递增的话, 它怎么换行
我觉的es的值得设置正确,然后在s0循环里inc di;add si,2,而不是在s循环里进行这两个操作,你看对不对? assume cs:code
a segment
db 1,2,3,4,5,6,7,8
a ends
b segment
db 1,2,3,4,5,6,7,6
b ends
c segment
db 0,0,0,0,0,0,0,0
c ends
code segment
start:
mov ax,a
mov ds,ax
mov bx,0
mov cx:8
s:
mov al,ds:
add al,ds:
mov ds:,al
inc bx
loop s
mov 4c00h
int 21h
code ends
end start
帮忙看看哪里错了?提示C没有定义 gyl 发表于 2014-9-22 12:40
assume cs:code
a segment
db 1,2,3,4,5,6,7,8
你c没有事先声明,试试在cs,ds,后加上es:c, 逆流杀 发表于 2014-9-22 20:30
你c没有事先声明,试试在cs,ds,后加上es:c,
首先谢谢你的回复。我想再问一句:C是没有声明,但是同样的A,B也没声明啊。为真么单独提示C呢? gyl 发表于 2014-9-26 12:05
首先谢谢你的回复。我想再问一句:C是没有声明,但是同样的A,B也没声明啊。为真么单独提示C呢?
assume cs:code , ds:a
a segment
db 1,2,3,4,5,6,7,8
db 1,2,3,4,5,6,7,6
db 0,0,0,0,0,0,0,0
a ends
code segment
start:
mov ax,a
mov ds,ax
mov bx,0
mov cx,8
s:
mov al,ds:
add al,ds:
mov ds:,al
inc bx
loop s
mov ax,4c00h
int 21h
code ends
end start
你对照一下,你那里错了,这个我编译了没问题。至于你说的a,b,c都没证明,为什么单独提示c,我想是以为,机器自动把它放到es,和ss中,再加一个,就没段寄存器给他了,我是这么想的,因为把c去掉,再将一些小错误改一下,的确可以编译出来,多一个就不行了,我再去帮你问问吧,我目前是这样想的 逆流杀 发表于 2014-9-26 18:51
assume cs:code , ds:a
a segment
db 1,2,3,4,5,6,7,8
请看一下《汇编语言》--第二版(王爽老师)这本书的实验5:编写、调试具有多个段的程序,第5题和第六题。是不是书本出错了?这本书错误百出,不知道是哪个环节出问题了。谢谢 gyl 发表于 2014-9-27 10:51
请看一下《汇编语言》--第二版(王爽老师)这本书的实验5:编写、调试具有多个段的程序,第5题和第六题 ...
http://bbs.fishc.com/forum.php?mod=viewthread&tid=53100&page=1#pid2093119
这是我帮你问的,我之前找到了你说的这题,但是按照答案上的源代码,也是通过不了,所以就问厉害的人了,你自己去看看的,有的说是编译器的问题, 原来是MASM版本问题!害得我郁闷了好多天。这种问题很打击人的积极性。因为找不到问题就觉得这个语言很神秘的样子。都几乎没信心继续学下去了。十分感谢你的耐心回复。我的QQ:422519061。如愿意请加我。很高兴认识你,又结交了一个良师益友! gyl 发表于 2014-9-29 08:54
原来是MASM版本问题!害得我郁闷了好多天。这种问题很打击人的积极性。因为找不到问题就觉得这个语言很神秘 ...
拉到我,我连渣都不是,嘿嘿
别谦虚。我是刚接触DEBUG和汇编的菜鸟。怎么说你也比我强。再说你这份热心肠最让我感动。 gyl 发表于 2014-10-1 10:47
别谦虚。我是刚接触DEBUG和汇编的菜鸟。怎么说你也比我强。再说你这份热心肠最让我感动。
嘿嘿,一起努力吧,这里的朋友都很热心的, si的自增应该放在S0循环里,跳出S0循环后记得si初始化。我看了下应该不会出现死循环
页:
[1]