能力值:
( LV12,RANK:650 )
|
-
-
2 楼
这样行不行
xor ax,ax
mov ds,ax
xor bx,bx
mov cx,64
la: mov byte ptr 200h[bx],bl
inc bx
loop la
mov ax,4c00h
int 21h
|
能力值:
( LV8,RANK:130 )
|
-
-
3 楼
xor bx,bx
mov ds,bx
mov cx,64
la:mov [bx+23fh],cl
dec bx
loop la
mov ax,4c00h
int 21h
|
能力值:
( LV2,RANK:10 )
|
-
-
4 楼
大哥,我还没学过xor和la这两个指令呀。
只会用mov和inc、loop指令呀。
下边是我上午写的程序,还没编译,也没调试呢,希望大哥们给指导指导。
assume cs:code
code segment
mov ax,0000h
mov ds,ax
mov bx,200h
mov es,ax
mov bx,0
mov cx,64
s: mov dl,[bx]
mov es:[bx],dl
inc bx
loop s
mov ax,4c00h
int 21
code ends
end
|
能力值:
( LV2,RANK:10 )
|
-
-
5 楼
希望大哥们给予指导。
|
能力值:
( LV12,RANK:210 )
|
-
-
6 楼
xor ax, ax
等价于
mov ax, 0
不过xor指令影响标志寄存器,mov不影响
la不是指令, 是标号
2楼3楼的程序已经很好了
想要编译调试?
ML /c /omf /Zi /cp xxx.asm
如果你下载的是MASM32, 需要另外下载一个16位的LINK程序才可以连接
LINK xxx.obj
|
能力值:
( LV2,RANK:10 )
|
-
-
7 楼
谢谢thebutterfly大哥。
我用的是一个windows集成的MAS编译器,对16位的源程序直接可以编译的。
是不是la跟s的作用差不多呀?
|
能力值:
( LV2,RANK:10 )
|
-
-
8 楼
谢谢三位大哥,我对比了一下,把代码改成:
assume cs:code
code segment
mov ax,0
mov ds,ax
mov bx,0
mov cx,64
s: mov [bx],ax
inc bx
loop s
mov ax,4c00h
int 21
code ends
end
这样做正确吗?
|
能力值:
( LV12,RANK:210 )
|
-
-
9 楼
看不懂做什么
怎么没见你向内存写东西啊?
那个循环只是把es:[0]的内容反复读入ax, 读入ax之后又没见做了什么处理...而且似乎es也没有初始化
mov dest, src
作用:把src的内容送入dest
|
能力值:
( LV2,RANK:10 )
|
-
-
10 楼
好像要写个段前缀,可是我不知道怎么写。
大哥能否指点指点?
|
能力值:
( LV2,RANK:10 )
|
-
-
11 楼
3楼和2楼程序正确,不过看来3楼更强些,2楼多用了一个寄存器
xor ax,ax
mov ds,ax
xor bx,bx
这三句合成二句就好了.
xor bx,bx
mov ds,bx
楼主修改后的程序完全变得面目全非
mov ax,es:[0] 这句除了看看外,对程序目标没起来任何作用
段前缀是这样写的,不过你看2楼和3楼都没用到段前缀呀
|
能力值:
( LV12,RANK:650 )
|
-
-
12 楼
对于[bx],默认的段前缀就是ds,当然写成ds:[bx]也可以。
|
能力值:
( LV2,RANK:10 )
|
-
-
13 楼
谢谢各位大哥。
按照RoBa大哥的说法,我刚才又翻看了一下[bx]和loop的联合用法。
这个试验是让做[bx]和loop的使用的。
而且,我看的汇编教材里边还没教到使用xor指令的。
这两天一直在翻看[bx]和loop用法这一章节,可是我想破头都不会使用9条指令完成呀。
大哥们,指点指点小弟。
|
能力值:
( LV2,RANK:10 )
|
-
-
14 楼
我现在不明白RoBa大哥写的那句
la: mov byte ptr 200h[bx],bl
是什么意思?
还有hangj大哥的那句
la:mov [bx+23fh],cl
dec bx
是什么意思呀?
|
能力值:
( LV12,RANK:650 )
|
-
-
15 楼
你看的是什么书?应该有介绍“寻址方式”的内容的吧,好好看看那里。
|
能力值:
( LV2,RANK:10 )
|
-
-
16 楼
我看的是清华大学出版社王爽著的《汇编语言》。
现在这个试验是第五章的。
前5章节的内容没有讲寻址方式呀。
5555
我又改了一下,麻烦帮我看看:
assume cs:code
code segment
mov ax,0
mov ds,ax
mov bx,200h
mov cx,64
s:mov [bx],ax
inc bx
inc al
loop s
mov ax,4c00h
int 21h
code ends
end
|
能力值:
( LV12,RANK:650 )
|
-
-
17 楼
这次总算像个样子了,把s: mov [bx],ax里面ax改成al应该就对了
|
能力值:
( LV2,RANK:10 )
|
-
-
18 楼
谢谢RoBa大哥,我为这个题折腾了3天了。
可是,还不能达到9条指令的要求呀。
555555
难道我的能力只能做到这样吗?好苦恼呀。
在这种入门阶段里煎熬,好难受呀。
|
能力值:
( LV12,RANK:450 )
|
-
-
19 楼
mov ax, 0
mov bx, ax
mov ds, ax
mov cx, 64
la: mov [bx + 200h], bl
inc bx
loop la
mov ax, 4c00h
int 21h
这个王爽怎么会出这种题目, 0:200h 到 0:23Fh 是中断80h 往后的中断向量表, 这个程序运行了不等于自杀, 晕.
就算教别人学汇编,也该出一点有实际用途的程序.
Kven 也不用伤心,现在的计算机速度够快,多一句少一句没有太大的关系,不必放在心上.
|
能力值:
( LV2,RANK:10 )
|
-
-
20 楼
谢谢 gzgzlxg 大哥,
现在初学阶段,试验课程做的好坏,直接证明对本章节和前边章节学习的好坏,看来我要好好再翻翻前边的课程了。
如果我自己对自己都不负责任,那我还是放弃这种自学算了。
所以,我要好好学习这些基础性的东西呀。
|
能力值:
( LV2,RANK:10 )
|
-
-
21 楼
先好好琢磨下2楼和3楼的程序你就知道了
|
能力值:
( LV2,RANK:10 )
|
-
-
22 楼
截至到今天才把问题解决。
第五章的问题,我到了第七章的学习中,才学到[bx+idata]。
谢谢各位大哥。
assume cs:code
code segment
mov ax,0
mov ds,ax
mov bx,0
mov cx,64
s:mov [bx+200h],al
inc bx
loop s
mov ax,4c00h
int 21h
code ends
end
|
能力值:
( LV8,RANK:130 )
|
-
-
23 楼
最初由 hangj 发布 xor bx,bx mov ds,bx mov cx,64 la:mov [bx+23fh],cl dec bx ........
这个错了吧
你放的是1~64,题目要求是0~63
|
|
|