ckzmo 发表于 2011-2-20 18:57:51

问题7.9求解释啊~~

本帖最后由 china0008 于 2011-2-20 21:51 编辑

课本7.9的编程题写出来却无法编译连接。。。。。。

编程将datasg段中每个单词的前4个字母改写成大写字母

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
stacksg ends

codesg segment
start:mov ax,datasg
         mov ds,ax
         mov bx,0
         mov ax,stacksg
         mov ss,ax
         mov sp,16
      
         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,4c00h
   int 21h
codesg ends
end start

yuyuhongss 发表于 2011-2-20 19:24:17

s:mov al,
and al,11011111b
mov ,al

这三行改成这样:
s:mov al,ds:
and al,11011111b
mov ds:,al

就可以编译通过了,不过你的程序还是有问题,你看:




这是算法问题,自己看着解决吧

ckzmo 发表于 2011-2-20 19:32:43

怎么递减了。。。。

ckzmo 发表于 2011-2-20 19:43:30

照你的加了DS: 问题依旧 还是26 28error

yuyuhongss 发表于 2011-2-20 19:50:31

回复 4# ckzmo


    看好,不光是该ds,还有改成

ckzmo 发表于 2011-2-20 20:04:27

本帖最后由 ckzmo 于 2011-2-20 20:08 编辑

.....呵呵 没看到 这个顺序不能乱写吗?

ckzmo 发表于 2011-2-20 20:17:34

确实程序不对 哪里出问题呢? 我只知道肯定是 CX 哪出问题了 但怎么改却不知道

zhang898600 发表于 2016-9-18 16:16:35

你的程序在masm 5.0下编译没有问题。结果又问题是因为你定义数据的时候每行多个一个空格
datasg segment
db '1. display       '
db '2. brows         '
db '3. replace       '
db '4. modify      '
datasg ends
页: [1]
查看完整版本: 问题7.9求解释啊~~