交作业!P158页问题7.9
问题7.9编程,将data段中每个单词的前4个字母改为大学字母。
提示:data段中的字符串每行16个字节!
assume cs:code,ds:data,ss:stack
stack segment
dw 0,0,0,0,0,0,0,0
stack ends
data segment
db ' display '
db ' bfows '
db ' repace '
db ' modify '
data ends
code segment
start: mov ax,data ;数据地址
mov ds,ax
mov ax,stack ;栈地址
mov ss,ax
mov sp,16
mov bx,0
s :mov cx,4
push cx
mov si,0
mov cx,4
s1:mov al,
and al,11011111b
mov ,al
add si,1
loop s1
add bx,16
pop cx
loop s
mov ax,4c00h
int 21h
code ends
end start
帮我看看这代码对吗 ,谢谢!
我DUBUG 前几个都变大写了,后面的不对,大家帮我DUBUG看看
SP应该给21H吧 topcookie 发表于 2011-9-24 00:44 static/image/common/back.gif
SP应该给21H吧
哥!我创建了栈!SP21H溢出了
前现变大写,后面没变,是因为循环弄错了。
内存中一个可以显示字母占两个字节。
一个存属性,另一个才是存ASCII码。你的si每次自增改成2。也许就可以了。:loveliness: 他的操作是字节操作为什么要加2呢,楼主的sp为16h是怎么得来的啊,前面定义的8个字是16字节 Mr.C 发表于 2011-9-24 18:35 static/image/common/back.gif
前现变大写,后面没变,是因为循环弄错了。
内存中一个可以显示字母占两个字节。
一个存属性,另一个才是 ...
嘿嘿,谢谢! 你们都没看出问题在哪里,这题给小弟我了提示,编程要细心。
靠山山会倒,靠人人会跑!
问题:我的二次循环S写在 MOV CX,4 那里了。OK
因为两个字节才会显示一个字母。前面存字的颜色背景色信息,后面一个字节才是存ASCII码。
楼主每次自增 1 个字节。肯定是显示不了所有的字符串的 topcookie 发表于 2011-9-24 18:47 static/image/common/back.gif
他的操作是字节操作为什么要加2呢,楼主的sp为16h是怎么得来的啊,前面定义的8个字是16字节
你可能还没学懂把。
0-F 16字节! 8字。
栈压数据,SP-1 然后压数据。 F+1 是10H 16字节。SP 肯定指向10H,16D 哦
默认是十进制的吗,我以为16H了,呵呵
页:
[1]