鱼C论坛

 找回密码
 立即注册
查看: 2862|回复: 0

[技术交流] 实验5 第五题

[复制链接]
发表于 2011-11-2 01:40:10 | 显示全部楼层 |阅读模式

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

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

x
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段的数据放入ds寄存器中
            mov ax,b
            mov es,ax    ,把b段的数据放入ES寄存器中
            mov ax,d
            mov ss,ax     ,把d段的数据放入SS寄存器中(这里课本是C段,但用c无法编译所以换d)
            mov bx,0      ,把dx置0,因为下面用它做各个段的内存偏移地址使用,必须从0开始
            mov ah,0      ,把寄存器ax高位置零,因为下面用来存储a,b段的数值相加,且它们是字节型数据
            mov cx,8       ,因为有8个字节型的内存数据,待会循环从0到7分别加1使用
        s: mov al,ds:[bx] ,把a段的第一个字节型数据值存入寄存器al中
          add al,es:[bx]   ,把a段和b段的第一个字节型数据值相加之后存入到al中
          mov ss:[bx],al    ,最后把a段和b段的第一个字节型数据值的和存入课本要求的d段中
          inc bx               ,每次执行后BX作为内存单元都自动加1
          loop s               ,依次循环
                  mov ax,4c00h                 
                  int 21h
                            
     code ends
         end start
初学编程 各位前辈帮忙看看思路和答案做得对否 感谢了
最后我在电脑中debug得到SS寄存器中的值依次为02,04,06 ,08 ,0a,0c,0E,10
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

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

GMT+8, 2024-11-19 10:40

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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