鱼C论坛

 找回密码
 立即注册
查看: 3430|回复: 8

交作业!P158页问题7.9

[复制链接]
发表于 2011-9-24 00:12:01 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
问题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,[3+si+bx]
  and al,11011111b
  mov [3+si+bx],al
  add si,1
  loop s1

  add bx,16
  pop cx
  loop s
  
  mov ax,4c00h
  int 21h
  
code ends
end start
  
  帮我看看这代码对吗 ,谢谢!
我DUBUG 前几个都变大写了,后面的不对,大家帮我DUBUG看看
  
  
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
发表于 2011-9-24 00:44:03 | 显示全部楼层
SP应该给21H吧
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
 楼主| 发表于 2011-9-24 18:07:02 | 显示全部楼层
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
发表于 2011-9-24 18:35:36 | 显示全部楼层
前现变大写,后面没变,是因为循环弄错了。
内存中一个可以显示字母占两个字节。
一个存属性,另一个才是存ASCII码。你的si每次自增改成2。也许就可以了。:loveliness:
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
发表于 2011-9-24 18:47:50 | 显示全部楼层
他的操作是字节操作为什么要加2呢,楼主的sp为16h是怎么得来的啊,前面定义的8个字是16字节
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
 楼主| 发表于 2011-9-24 18:48:52 | 显示全部楼层
Mr.C 发表于 2011-9-24 18:35
前现变大写,后面没变,是因为循环弄错了。
内存中一个可以显示字母占两个字节。
一个存属性,另一个才是 ...

嘿嘿,谢谢! 你们都没看出问题在哪里,这题给小弟我了提示,编程要细心。
靠山山会倒,靠人人会跑!

问题:我的二次循环S写在 MOV CX,4 那里了。OK
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
发表于 2011-9-24 18:52:54 | 显示全部楼层
因为两个字节才会显示一个字母。前面存字的颜色背景色信息,后面一个字节才是存ASCII码。
楼主每次自增 1 个字节。肯定是显示不了所有的字符串的
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
 楼主| 发表于 2011-9-24 18:54:35 | 显示全部楼层
topcookie 发表于 2011-9-24 18:47
他的操作是字节操作为什么要加2呢,楼主的sp为16h是怎么得来的啊,前面定义的8个字是16字节

你可能还没学懂把。
0-F 16字节! 8字。
栈压数据,SP-1 然后压数据。 F+1 是10H 16字节。SP 肯定指向10H,16D 哦
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
发表于 2011-9-24 20:17:53 | 显示全部楼层
默认是十进制的吗,我以为16H了,呵呵
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2024-10-8 22:19

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表