鱼C论坛

 找回密码
 立即注册
查看: 2847|回复: 1

求解:实验五

[复制链接]
发表于 2011-12-25 21:12:45 | 显示全部楼层 |阅读模式

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

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

x
实验五 6小题:
我做得解答:
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 es,ax
        
        mov ax,c
        mov ds,ax
        
        mov bx,0
        mov cx,8
        
        s0:
        mov al,es:[bx]
        mov [bx],al
        inc bx
        loop s0
        
        mov ax,b
        mov es,ax
        
        mov ax,c
        mov ds,ax
        
        mov bx,0
        mov cx,8
        
        s1:
        mov al,es:[bx]
        add [bx],al
        inc bx
        loop s1
        
        
        mov ax,4c00h
        int 21h

code ends

end start
网上的答案:
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 es,ax

        mov ax,c

        mov ds,ax

        mov bx,0

        mov cx,8

 

     s1:mov ax,es:[bx]

        add [bx],ax

        add bx,2

        loop s1

 

        mov ax,b

        mov es,ax

        mov ds,ax

        mov bx,0

        mov cx,8

 

     s2:mov ax,es:[bx]

        add [bx],ax

        add bx,2

        loop s2

 

        mov ax,4c00h

        int 21h

code ends

  end start
都能正确运行,为什么
s2:mov ax,es:[bx]

        add [bx],ax

        add bx,2  
能正确运行
如果偏移了两个单元,后续的第二个单元怎么会正确取出数据
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
 楼主| 发表于 2011-12-25 21:28:31 | 显示全部楼层
我知道了,刚刚调试了下,网上的程序应该改为mov cx,4更为准确,mov cx,8做了无用功。
本来按照我得程序一次偏移一个单元,做一次计算,可以一次偏移两个单元,一次做两次计算
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

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

GMT+8, 2024-11-19 14:51

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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