关于习题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-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 思路可以,代码也基本可以(显然你没有编译过该代码,有一些语法错误) 你的意思是 不用SI用bx 这没问题因为BX他没作用但你在s0前少了mov cx,4 会导致第一次s0运行4次第二次运行3次。。2次。。。1次 。你还缺一步mov bx,0会导致意外错误
不好意思,代码里笔误,误将mov ds:,al这句后边的al写上了。不知您指的语法错误是否指这里?还有三楼提示S0前要加上CX=4,确实,这个地方我也错了,如果这2个地方修改后,是不是就无其它问题了?至于少BX=0,我没想通。
页:
[1]