问题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
s:mov al,
and al,11011111b
mov ,al
这三行改成这样:
s:mov al,ds:
and al,11011111b
mov ds:,al
就可以编译通过了,不过你的程序还是有问题,你看:
这是算法问题,自己看着解决吧 怎么递减了。。。。 照你的加了DS: 问题依旧 还是26 28error 回复 4# ckzmo
看好,不光是该ds,还有改成 本帖最后由 ckzmo 于 2011-2-20 20:08 编辑
.....呵呵 没看到 这个顺序不能乱写吗? 确实程序不对 哪里出问题呢? 我只知道肯定是 CX 哪出问题了 但怎么改却不知道 你的程序在masm 5.0下编译没有问题。结果又问题是因为你定义数据的时候每行多个一个空格
datasg segment
db '1. display '
db '2. brows '
db '3. replace '
db '4. modify '
datasg ends
页:
[1]