??? 发表于 2011-7-26 20:43:16

这段代码哪里错了

本帖最后由 weixianlang 于 2011-8-1 11:30 编辑

assume cs:codesg,ds:datasg,ss:stacksg

datasg segment
   db '1. display      '
   db '2. brows      '
   db '3. replace      '
   db '4. modify       '
datasg ends

stacksg segment
   dw 0,0,0,0,0,0,0,0                ;用来做栈,容量为16字节
stacksg ends


codesg segment
start: mov ax,datasg
       mov ds,ax
       mov bx,0
       mov cx,5
S:   push cx
       mov bx,0
       mov cx,4
S0:    mov al,
       and al, 11011111b
       mov ,al
       int si         
         loop s0
       add bx,16
         pop cx
         loop s
         
         mov ax,4c00h
         int 21h
         codesg ends
         end start
         

??? 发表于 2011-7-26 20:52:34

找到了,
inc 写成 int了

??? 发表于 2011-7-26 21:07:11

本帖最后由 ??? 于 2011-7-26 21:09 编辑

为什么运行后会是这种结果啊,一楼的代码哪里错了啊

??? 发表于 2011-7-26 21:08:09

而不是这种结果

bevin 发表于 2011-7-27 00:00:53

感觉你第一行已经把ds和datasg挂钩了,后来又加上了mov ax,datasg
       mov ds,ax有点多余。。。

学基础 发表于 2011-7-27 00:25:37

我运行下来是正确的
根据你的提示,int=>inc,,,,,
重复定义mov bx,0   
第二个我改成了mov si,0

学基础 发表于 2011-7-27 00:28:23

这里是运行后的截图

??? 发表于 2011-7-27 05:46:52

学基础 发表于 2011-7-27 00:25 static/image/common/back.gif
我运行下来是正确的
根据你的提示,int=>inc,,,,,
重复定义mov bx,0   


是的,都给定义成行了,没有定义列,谢谢

yulin3192 发表于 2011-7-29 13:31:28

哎呀
忙啊
时间 不够学习
看不懂

udsky 发表于 2011-7-31 23:01:38

codesg segment
start: mov ax,datasg
       mov ds,ax      ;初始化
          
       mov bx,0         ;bx定位行
          
       mov cx,5
          
S:   push cx

       mov bx,0                ;这里加个mov si,0重新定位列可好?

       mov cx,4
          
S0:    mov al,
       and al, 11011111b   ;转换
       mov ,al
          
       inc si            ;增加si
          
         loop s0          ;完成转换
                  
       add bx,16          ;索引下一行
         pop cx         
         loop s
         
         mov ax,4c00h
         int 21h
         codesg ends
         end start没有重新索引列吧?
页: [1]
查看完整版本: 这段代码哪里错了