88961750 发表于 2013-8-25 13:40:49

第六章实验5-5 请问可以这样写吗? 会不会有问题啊?

本帖最后由 88961750 于 2013-8-25 13:41 编辑

还请各位大大帮忙看一下谢谢!

assumecs:code

a segment

   db 1,2,3,4,5,6,7,8

a ends

b segment

    db 1,2,3,4,5,6,7,8

b ends

c segment

   db 0,0,0,0,0,0,0,0

c ends

code segment

start:
          mov al,a
          mov ds,al
          mov al,b
          mov es,al
          mov al,c
          mov ss,al
          mov sp,9
          mov bx,8
          mov cx,8
s:add ds:,es:
   mov al,ds:
   push al
   sub bx,1
   loop s

code ends

end start


小咒 发表于 2013-8-25 14:16:24

第一 无法以C来命名
c segment 不能以C来命名的

mov al,a这里的A是什么?还有后面的mov al,b move al,c都是什么东西?
mov ds,al这里ds一个16位寄存器你把8位的寄存器值怎么给ds

错的太多了。。这是楼主自己写的吗?

88961750 发表于 2013-8-25 14:30:28

mov al,a
mov ds,al

用ds:   访问 a 段中的数据啊!王爽书上 是这样教的是我自己写的

88961750 发表于 2013-8-25 14:31:24

ds 不是数据段的段地址吗?

88961750 发表于 2013-8-25 14:33:12

这个 csegmentc不是我命名的是书上的实验题目 给出的

小咒 发表于 2013-8-25 14:39:50

88961750 发表于 2013-8-25 14:30 static/image/common/back.gif
mov al,a
mov ds,al



这个。。我想问楼主是不是跳着学的

mov al,a,定义段地址,段地址是16位的,al寄存器是8位的怎么放的下段地址呢?
mov ds,al,这里ds一个16位寄存器你把8位的寄存器值怎么给ds
add ds:,es:,add指令是不可以这样用的
push al,入栈指令只压入一个字也就是16位,al是8位

88961750 发表于 2013-8-25 15:00:20

额我再去修改下看看主要很多知识混淆了!

小咒 发表于 2013-8-25 15:09:20

88961750 发表于 2013-8-25 15:00 static/image/common/back.gif
额我再去修改下看看主要很多知识混淆了!

学编程千万不要急,一个知识点打扎实了,再进入下一个知识点,不然很容易现在学的记住了,上一课的又忘记了,还有不管什么课题与实验,能自己打先自己打出来,就算出错也没关系,至少到最后你理解了我错在哪里,为什么会错等等。。。

另外像这些代码,你应该先自己放到编译器去编译一下,肯定会报错的。

88961750 发表于 2013-8-25 15:44:05

恩恩 是滴受教了 要一步一个脚印的学习!

菜鸟一个a 发表于 2013-12-31 10:27:13

学习学习再学习
页: [1]
查看完整版本: 第六章实验5-5 请问可以这样写吗? 会不会有问题啊?