tangqy 发表于 2012-2-1 23:37:32

关于习题7-9

这道题代码段小甲鱼写的如下:
================================
   mov ss,ax
   mov sp,16
   mov ax,datasg
   mov ds,ax
   mov bx,0

   mov cx,4
s0: push cx
   mov si,0
   mov cx,4
   s:mov al ,
   and al,11011111b
   mov ,al
   inc si
   loop s

   add bx,16
   pop cx
   loop s0
=========================================
我想请问各位,我可否将代码改成如下:
==========================================
   mov ax,stacksg
   mov ss,ax
   mov sp,16
   mov ax,datasg
   mov ds,ax
   mov bx,0
   mov cx,4
s: push cx
   s0:mov al,ds:
         and al,11011111b
         mov ds:
         inc bx
         loop s0
         add bx,16
         pop cx
          loop s
   ================================================

Push 发表于 2012-2-1 23:37:33

本帖最后由 Push 于 2012-2-3 17:09 编辑

不过不知道你这个题目是什么.... mov ax,stacksg
   mov ss,ax
   mov sp,16       ;----可以不定义栈
   mov ax,datasg
   mov ds,ax
   mov bx,0
   mov cx,4
s: push cx         ;----这里少了个定义循环次数
   s0:mov al,ds:
         and al,11011111b       ;----可以改成and byte ptr ,11011111b ----把mov al,ds:删掉
         mov ds:         ;----这里少了个操作数
         inc bx
         loop s0
         add bx,16
         pop cx
          loop s

仰望天上的光 发表于 2012-2-2 09:39:54

思路可以,代码也基本可以(显然你没有编译过该代码,有一些语法错误)

小马过河 发表于 2012-2-2 10:50:49

你的意思是 不用SI用bx 这没问题因为BX他没作用但你在s0前少了mov cx,4   会导致第一次s0运行4次第二次运行3次。。2次。。。1次    。你还缺一步mov bx,0会导致意外错误

tangqy 发表于 2012-2-2 13:28:45

不好意思,代码里笔误,误将mov ds:,al这句后边的al写上了。不知您指的语法错误是否指这里?还有三楼提示S0前要加上CX=4,确实,这个地方我也错了,如果这2个地方修改后,是不是就无其它问题了?至于少BX=0,我没想通。

页: [1]
查看完整版本: 关于习题7-9