鱼C论坛

 找回密码
 立即注册
查看: 4548|回复: 10

要求编写code段中代码,将a段和b段中数据依次相加,把结果存到

[复制链接]
发表于 2013-7-24 22:12:01 | 显示全部楼层 |阅读模式
1鱼币
王爽第6章习题,要求编写code段中代码,将a段和b段中数据依次相加,把结果存到c段中assume  cs:code
a       segment
          ab  1,2,3,4,5,6,7,8
a       ends

b       segment
          ab 1,2,3,4,5,6,7,8
b       ends

c       segment
          ab   0,0,0,0,0,0,0,0
c       ends

code    segment
start:?
code    ends
end     start
求详细解答 谢谢

最佳答案

查看完整内容

c在masm中属于关键字。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2013-7-24 22:12:02 | 显示全部楼层

c在masm中属于关键字。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2013-7-24 23:20:44 | 显示全部楼层
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
                ;d段和ES挂勾
start:         mov ax,d
                mov es,ax 
                ;把a段的数据传到d段
                mov ax,a
                mov ds,ax
                mov bx,0
                mov cx,8
        s:        mov al,ds:[bx]
                mov es:[bx],al
                inc bx
                loop s
                ;(b段和DS挂勾)ES段和B段相加
                mov ax,b
                mov ds,ax
                mov bx,0
                mov cx,8
        s1:        mov dl,ds:[bx]
                add es:[bx],dl
                inc bx
                loop s1
                
                mov 4c00h
                int 21h
code    ends
end     start
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2013-7-25 07:57:14 | 显示全部楼层
本帖最后由 huanxiangzhe2 于 2013-7-25 07:59 编辑

assume cs:code

code segment
start:mov ax,a
                        mov ds,ax
                        
                        mov ax,c
                        mov ss,ax
                        mov sp,8H
                        
                        mov cx,4H
                        mov bx,8H
         s1:sub bx,2H
                        push ds:[bx]
                        loop s1
                        
                        mov ax,b
                        mov ds,ax
                        mov bx,0H
                        mov cx,4H
          s2:pop ax
            add ax,[bx]
                        mov [bx],ax
                        add bx,2H
                        loop s2
                        
                        
           mov cx,4H
        s3:mov bx,8H
                        sub bx,2H
                        push ds:[bx]                        
                        loop s3                        
                        
                        mov ax,4c00H
                        int 21H
code ends

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

end start
为什么我的这段代码,执行到S1就不行了?求高人指点。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2013-7-25 13:06:17 | 显示全部楼层
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                     ;设置a段为数据段
          mov ax,b
          mov es,ax                     ;b段为附加段
          mov ax,d
          mov ss,ax                     ;使用栈段来保存结果 由于本要用的编译器不能用c来做标号所以用了d
         
          mov bx,0
          mov cx,8                       ;循环次数为8次
s:
      mov al,[bx]                        ;将数据段0单元内容传送给al
          add al,byte ptr es:[bx]    ;再将b段也就是附加段的0单元内容与al相加
          mov byte ptr ss:[bx],al    ;结果传送到第三个段ss段 这里只是把它看作一个段并没当作栈
          inc bx                           ;bx加1 也就是偏移加1
          loop s                          ;开始循环
          
          mov ax,4c00h
          int 21h
code ends
end  start
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2013-7-25 15:38:09 | 显示全部楼层
logite这位鱼友,我想知道为什么我的程序执行不下去,帮我看看吧,我并不是想得到一段可执行代码。希望帮我解答一下我的错误,谢谢。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2013-7-25 16:18:33 From FishC Mobile | 显示全部楼层
huanxiangzhe2 发表于 2013-7-25 15:38
logite这位鱼友,我想知道为什么我的程序执行不下去,帮我看看吧,我并不是想得到一段可执行代码。希望帮我 ...

什么不行了 请详细描述 我看了 s1 没发现问题 要不你把abc段移上面去
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2013-7-25 18:25:08 | 显示全部楼层
哥们,就是在按步执行的时候,s1循环两次就报错,你执行一下看看吧,不知道哪里错了。
ABC.jpg
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2013-8-28 14:08:25 | 显示全部楼层
编译器里一个段貌似不能用c来命名
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2013-8-28 17:08:22 | 显示全部楼层
C为关键字哦~~~如果朋友 使用高亮的 编辑器会发现它是高亮的。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2013-9-3 13:14:33 | 显示全部楼层
{:1_1:}顶。。。。{:1_1:}
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2024-11-17 06:29

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表