鱼C论坛

 找回密码
 立即注册
查看: 2807|回复: 7

实验5 第六小题 求解

[复制链接]
发表于 2012-2-29 15:53:04 | 显示全部楼层 |阅读模式
1鱼币
本帖最后由 ︵ゞ痴.想 于 2012-3-6 23:00 编辑

实验5 第六小题老是出错
ASSUME    CS:CODE           A  SEGMENT
              DW        1,2,3,4,5,6,7,8,9,0AH,0BH,0CH,0DH,0EH,0FH,0FFH
           A  ENDS

           B  SEGMENT
              DW        0,0,0,0,0,0,0,0
           B  ENDS

        CODE  SEGMENT
      START:  MOV       AX,B
              MOV       SS,AX
              MOV       SP,16
              MOV       AX,A
              MOV       DS,AX
              MOV       BX,16
              MOV       CX,8
          S:  PUSH      DS:[BX]
              SUB       BX,2
              LOOP      S
              MOV       AX,4C00H
              INT       21H
        CODE  ENDS

              END       START


这代码有什么问题吗?



最佳答案

查看完整内容

ASSUME CS:CODE A SEGMENT DW 1,2,3,4,5,6,7,8,9,0AH,0BH,0CH,0DH,0EH,0FH,0FFH A ENDS B SEGMENT DW 0,0,0,0,0,0,0,0 B ENDS CODE SEGMENT START: MOV AX,B MOV SS,AX MOV SP,16 MOV AX,A MOV ...
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
发表于 2012-2-29 15:53:05 | 显示全部楼层
ASSUME    CS:CODE         
           A  SEGMENT
              DW        1,2,3,4,5,6,7,8,9,0AH,0BH,0CH,0DH,0EH,0FH,0FFH
           A  ENDS

           B  SEGMENT
              DW        0,0,0,0,0,0,0,0
           B  ENDS

        CODE  SEGMENT
      START:  MOV       AX,B
              MOV       SS,AX
              MOV       SP,16
              MOV       AX,A
              MOV       DS,AX
              MOV       BX,14          ;从0开始,第8个字型数据的地址应为ds:[14]
              MOV       CX,8
          S:  PUSH      DS:[BX]
              SUB       BX,2
              LOOP      S
              MOV       AX,4C00H
              INT       21H
        CODE  ENDS

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

使用道具 举报

发表于 2012-2-29 17:03:35 | 显示全部楼层
mov bx,0而不是16
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2012-2-29 17:07:45 | 显示全部楼层
还有把sub改成add试试


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

使用道具 举报

发表于 2012-2-29 18:00:56 | 显示全部楼层
  1. mov ax,b

  2.         mov ss,ax

  3.         mov sp,10h

  4.         mov ax,a

  5.         mov ds,ax

  6.         mov bx,0
  7.         mov cx,8

  8. s:      push [bx] ;从ds:[0] 开始 进栈  进入的是栈顶  
  9.         add bx,2

  10.         loop s

  11.         mov ax,4c00h

  12.         int 21h

复制代码
题目要求前8个数据逆序存放
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2012-3-4 20:33:02 | 显示全部楼层
如果是  SUB BX,2的话,BX英该指向32.因为你这里有16个字形数据,一个字形数据等于两个字节。所以BX应该偏移到32
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2012-3-5 00:02:08 | 显示全部楼层
ASSUME    CS:CODE           A  SEGMENT
              DW        1,2,3,4,5,6,7,8,9,0AH,0BH,0CH,0DH,0EH,0FH,0FFH <------你这里定义的是字单元,所以一共有32个字节单元
           A  ENDS

           B  SEGMENT
              DW        0,0,0,0,0,0,0,0
           B  ENDS

        CODE  SEGMENT
      START:  MOV       AX,B
              MOV       SS,AX
              MOV       SP,16
              MOV       AX,A
              MOV       DS,AX
              MOV       BX,16   <--------------你这个起始地址是16所以是从09开始压栈,你把前面dw换成db就行了。
              MOV       CX,8
          S:  PUSH      DS:[BX]
              SUB       BX,2
              LOOP      S
              MOV       AX,4C00H
              INT       21H
        CODE  ENDS

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

使用道具 举报

 楼主| 发表于 2012-3-6 22:46:18 | 显示全部楼层
可以复制不过 到最后第三次就错误。。。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-5-24 18:58

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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