雪绒★~花飘 发表于 2012-11-29 13:02:50

关于王爽老师书第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

wawa 发表于 2012-11-29 13:02:51

把mov al, 改成mov al,就行了至于为什么可能就是编译器的问题吧

ycg 发表于 2012-11-30 13:35:40

ACC 发表于 2012-11-30 07:01 static/image/common/back.gif
看到的最明显的错误是:pop cx 后没有对cx减1 死循环

执行loop指令时cx会自动减1的吧

ycg 发表于 2012-11-30 14:34:06

写成3h就不报错了,代表16进制。另外你s循环后面的"mov bx,0"是不是多余的

雪绒★~花飘 发表于 2012-12-1 09:16:55

也许就是这个原因吧

雪绒★~花飘 发表于 2012-12-1 09:17:42

wawa 发表于 2012-11-30 16:22 static/image/common/back.gif
把mov al, 改成mov al,就行了至于为什么可能就是编译器的问题吧

也许就是这个原因吧

青草 发表于 2012-12-1 09:27:27

这本书到那里书呀

雪绒★~花飘 发表于 2012-12-1 09:30:23

ycg 发表于 2012-11-30 14:34 static/image/common/back.gif
写成3h就不报错了,代表16进制。另外你s循环后面的"mov bx,0"是不是多余的

:D我试看看

雪绒★~花飘 发表于 2012-12-1 09:33:10

ycg 发表于 2012-11-30 14:34 static/image/common/back.gif
写成3h就不报错了,代表16进制。另外你s循环后面的"mov bx,0"是不是多余的

试过了没有用,还是报错

雪绒★~花飘 发表于 2012-12-1 09:41:34

ycg 发表于 2012-11-30 14:34 static/image/common/back.gif
写成3h就不报错了,代表16进制。另外你s循环后面的"mov bx,0"是不是多余的

:L汗看过了我那S下面的 mov bx,0不仅多余还错了只能寻到第二行的地址,下面的行数就寻不到了
页: [1]
查看完整版本: 关于王爽老师书第160页实验6第二小题自已写了代码却报错了请大家帮忙看看