帮我看看有没错
本帖最后由 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-28 17:29 编辑
理论上没有错,我运行了也没有错, 梦想飞扬 发表于 2012-2-27 16:56 static/image/common/back.gif
问题都不清楚,怎么看?
程序如下,编写code段中的内容,将a段和b段中的数据依次相加,将结果存到c段中。
本帖最后由 莫名其妙 于 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段
{:1_1:}是错了
页:
[1]