KK学脚本 发表于 2012-2-26 22:52:47

帮我看看有没错

本帖最后由 KK学脚本 于 2012-2-28 14:04 编辑

程序如下,编写code段中的内容,将a段和b段中的数据依次相加,将结果存到c段中。

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,8

b ends
d segment
db 0,0,0,0,0,0,0,0

d ends
code segment
start: mov ax,a
       mov ds,ax
       mov ax,d
       mov ss,ax
       mov sp,10h
       mov bx,0
      mov cx,8
s:    mov dl, ds:
   addds:,dl
   push ds:
   inc bx
   loop s   
                  
      mov ax,4c00h
      int 21h
      
code ends
end start


http://bbs.fishc.com/xwb/images/bgimg/icon_logo.png 该贴已经同步到 KK学脚本的微博

梦想飞扬 发表于 2012-2-27 16:56:47

问题都不清楚,怎么看?

等雨 发表于 2012-2-27 18:24:33

本帖最后由 等雨 于 2012-2-28 17:29 编辑

理论上没有错,我运行了也没有错,

KK学脚本 发表于 2012-2-28 13:56:21

梦想飞扬 发表于 2012-2-27 16:56 static/image/common/back.gif
问题都不清楚,怎么看?

程序如下,编写code段中的内容,将a段和b段中的数据依次相加,将结果存到c段中。

莫名其妙 发表于 2012-2-28 17:56:43

本帖最后由 莫名其妙 于 2012-2-28 18:11 编辑

基本上可以说你错了!~
这是debug 后的内存里的结果
0B82:000002 04 06 08 0A 0C 0E 10-00 00 00 00 00 00 00 00   ................
0B82:001001 02 03 04 05 06 07 08-00 00 00 00 00 00 00 00   ................
0B82:002010 00 0E 08 0C 07 0A 06-08 05 06 04 04 03 02 02   ................
0B82:0030B8 82 0B 8E D8 B8 84 0B-8E D0 BC 10 00 BB 00 00   ................
段地址就不用看了第一行16个字节应该是a 数据段d数据段(也就是C)的结果.完全不对阿!~

   mov sp,10h;这里你设置了16个字节的栈
       mov bx,0
      mov cx,8
s:    mov dl, ds:
   addds:,dl   ;这一句 是将加法的结果保存给 a数据段的内存单元       而且你这么写貌似是将a数据段每一个内存单元的数据自加并没有用上 b数据段
   push ds:;这里你push 进去以后结果应该是从内存里从右向左存储   而你的bx开始是等于0的 是从左向右递增
   inc bx

哥们 按照题目的意思来说    你这题应该是 0分
这道题先定义 从第八个字节开始 每次 用al ah 保存2位加法结果 然后push ax
或者 a 段 dsc段 es 然后 C段保存   a+c的结果 然后在与b段相加 结果保存在C段
或者 a 段 ds      b段 es 然后 将加法结果push然后在pop 出來保存在C段

KK学脚本 发表于 2012-2-29 15:18:35

{:1_1:}是错了
页: [1]
查看完整版本: 帮我看看有没错