鱼C论坛

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

[汇编作业] 实验五

[复制链接]
发表于 2020-5-24 18:43:51 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
(5)
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
c segment
        db 0,0,0,0,0,0,0,0
c ends
code segment
start:
                mov ax,a
                mov ds,ax
                mov ax,c
                mov es,ax
               
                mov bx,0
                mov cx,8            
addNumber:
                mov dl,ds:[bx]   ;把a的第bx+1个数据放入dl中
                mov ax,b
                mov ds,ax
                add dl,ds:[bx]        ;把b的第bx+1个数据和dl相加后再放入dl中
                mov es:[bx],dl        ;把得到的数据dl放入es:[bx]中,即存进c中
                inc bx
                loop addNumber            
code ends
end start
file:///C:\Users\Administrator\AppData\Roaming\Tencent\Users\1911698322\QQ\WinTemp\RichOle\](5Y35IQHA6Y0DA6NGQJBPR.png


                               
登录/注册后可看大图

(6)
assume cs:code
a segment
    dw 1,2,3,4,5,6,7,8,9,0aH,0bH,0cH,0eH,0fH,0ffH
a ends
b segment
    dw 0,0,0,0,0,0,0,0
b ends
code segment
start: mov ax,a
       mov ds,ax
       mov ax,b
       mov ss,ax
       mov sp,16
       mov cx,8
       mov bx,0
s:     push ds:[bx]
       add bx,2
       loop s  
       mov cx,8
       mov bx,0                  
       mov ax,4c00h
       int 21h
code ends
end start




想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2020-9-3 18:08:05 | 显示全部楼层
最好的答案!
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2021-8-15 20:08:35 | 显示全部楼层
哥们,那个上面的assume里面都没有abc,你确定管用嘛。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2021-11-5 20:04:23 From FishC Mobile | 显示全部楼层
我有一个疑问,你刚开始把a设为数据段,进入循环后就把b设为数据段了,一直到循环结束!那么岂不是a的数据没有加进去?
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 4 反对 0

使用道具 举报

发表于 2021-11-17 22:04:03 | 显示全部楼层
a83711140 发表于 2021-11-5 20:04
我有一个疑问,你刚开始把a设为数据段,进入循环后就把b设为数据段了,一直到循环结束!那么岂不是a的数据 ...

确实感觉不对
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2021-11-29 18:33:52 | 显示全部楼层
本帖最后由 兔子不吃窝边草 于 2021-11-29 18:38 编辑

mov cx,8
mov dl,ds:[bx]
mov es:[bx],dl
这个是按字节复制的,你又循环8次,确定是对的吗?
按照你这个c中的结果应该为02h,00h,04h,00h,06h,00h,06h,00h
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2021-11-29 18:42:25 | 显示全部楼层
楼上的也说得对的,按照你的思路应该在循环中重设a段的地址给ds
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2022-4-4 21:19:46 | 显示全部楼层
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

c segment
     db 0,0,0,0,0,0,0,0
c ends

code segment

start:         mov ax,c
                mov ds,ax
                mov bx,0
                mov cx,8
        s:        mov dl,0
                mov ax,a
                mov es,ax
                add dl,es:[bx]
                mov ax,b
                mov es,ax
                add dl,es:[bx]
                mov ds:[bx],dl
                inc bx
        loop s

                mov ax,4c00h
        int 21h
code ends
end start     

(6)应该是对的
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2022-5-3 11:24:20 From FishC Mobile | 显示全部楼层
循环最后把a地址再赋予ds就行了
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2022-11-2 15:21:06 | 显示全部楼层
第(5)题过程有误吧,程序第一次运行时,没有进入循环时,是正确的,进入循环后,你将ds重新指向了b段数据,程序继续运行下去,跟a段数据没关系了,因为a,b段数据一样,所以你测不出来,把b段数据改下, 就看出问题了
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2023-10-26 15:46:28 | 显示全部楼层
没有assume的段都放在一个段地址里面的
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-12-22 09:27

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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