关于王爽老师书第160页实验6第二小题自已写了代码却报错了请大家帮忙看看
下面是自己写的代码其中有两处报错了,报错的代码是mov al,和mov ,al而这两处改为mov al,和mov ,al却不会报错。请大家帮忙看看为什么会出错了
assume cs:codesg,ss:stacksg,ds:datasg
stacksg segment
dw 0,0,0,0,0,0,0,0 ;定义一个8个字单元
stacksg ends
datasg segment
db '1. display '
db '2. brows '
db '3. replace '
db '4. modify '
datasg ends
codesg segment
start: mov ax,stacksg
mov ss,ax
mov sp,10h ;设置栈顶,指向ss:10h
mov dx,datasg
mov ds,dx
mov bx,0
mov cx,4 ;设置外循环次数4次
s0: push cx ;将cx的值压入栈中
mov si,0
mov cx,4 ;设置内循环次数
s: mov al,
and al,11011111b;将小写字母变为大写字母
mov ,al
inc si
loop s
mov bx,0
add bx,16
pop cx ;从栈中取出的值送入cx中
loop s0
mov ax,4c00h
int 21h
codesg ends
end start
把mov al, 改成mov al,就行了至于为什么可能就是编译器的问题吧 ACC 发表于 2012-11-30 07:01 static/image/common/back.gif
看到的最明显的错误是:pop cx 后没有对cx减1 死循环
执行loop指令时cx会自动减1的吧 写成3h就不报错了,代表16进制。另外你s循环后面的"mov bx,0"是不是多余的 也许就是这个原因吧
wawa 发表于 2012-11-30 16:22 static/image/common/back.gif
把mov al, 改成mov al,就行了至于为什么可能就是编译器的问题吧
也许就是这个原因吧 这本书到那里书呀 ycg 发表于 2012-11-30 14:34 static/image/common/back.gif
写成3h就不报错了,代表16进制。另外你s循环后面的"mov bx,0"是不是多余的
:D我试看看 ycg 发表于 2012-11-30 14:34 static/image/common/back.gif
写成3h就不报错了,代表16进制。另外你s循环后面的"mov bx,0"是不是多余的
试过了没有用,还是报错 ycg 发表于 2012-11-30 14:34 static/image/common/back.gif
写成3h就不报错了,代表16进制。另外你s循环后面的"mov bx,0"是不是多余的
:L汗看过了我那S下面的 mov bx,0不仅多余还错了只能寻到第二行的地址,下面的行数就寻不到了
页:
[1]