. : : Assembly Language : : .  |  首页  |  我提出的问题  |  我参与的问题  |  我的收藏  |  消息中心   |  游客  登录  | 
刷新 | 提问 | 未解决 | 已解决 | 精华区 | 搜索 |
  《汇编语言》论坛 ->自由讨论区
  管理员: assembly   [回复本贴] [收藏本贴] [管理本贴] [关闭窗口]
主题 : :  请教课本上的一个问题!  [已解决] 回复[ 7次 ]   点击[ 425次 ]  
ljm7315
[帖 主]   [ 发表时间:2007-11-13 21:17 ]   [引用]   [回复]   [ top ] 
荣誉值:2
信誉值:6
注册日期:2007-11-13 20:16
王爽老师的书上有一道题:将程序中的一段代码复制到一块存储区中.实现的方法是用一个循环将要复制的代码一个字节一个字节的通过寄存器存储到指定的内存区域!  
  但有一个问题就是如何确定循环的次数,也就是如何确定要复制的代码的字节数?  有一个方法是计算每条指令的字节,然后求出总的字节数.但这种方法比较麻烦,也不具有通用性.
想请教一下各位高手,有没有其他方法可以 在程序中获得指定代码段的长度(字节数)?
                                    
先谢谢了!
sunshine
[第1楼]   [ 回复时间:2007-11-14 09:25 ]   [引用]   [回复]   [ top ] 
荣誉值:106
信誉值:0
注册日期:2007-06-26 15:10
方法有的,就是在你要复制的代码上面加上标记,在代码开始处加一个,代码结束处加一个,代码的大小就是他们的差。这些方法书本上有,如果你没有看到那里,就使用你自己的方法。王老师的书是循序渐进的,放心的看书把,到那个检测点,就用以前的知识解决,至于其他的,以后书中一定会介绍了
ljm7315
[第2楼]   [ 回复时间:2007-11-14 09:44 ]   [引用]   [回复]   [ top ] 
荣誉值:2
信誉值:6
注册日期:2007-11-13 20:16
你说的这个方法我看到了.但书上的题是一个填空题,不是编程题.程序中给出了一条mov cx,_  的指令.让填入要复制的代码的长度.所以不能用你说的那中方法.  
我想问在这种情况下,除了按照指令的长度来计算总长度外,有没有其他通用的方法?
(题是王老师的书上P113 实验4的第三题)
Wednesday
[第3楼]   [ 回复时间:2007-11-14 11:29 ]   [引用]   [回复]   [ top ] 
荣誉值:43
信誉值:3
注册日期:2007-07-05 19:53


根据前面知识的积累和对汇编指令和机器码认识的加深,大家对汇编指令的格式及一些汇编指令对应的机器码的长度应该有一定的认识,而程序中的这几条指令长度应该都能在前面的内容中有所参考。
只要题中的第一空填写正确,第二空的答案就已经确定并且数值是有限的整数。

所以我目前的观点倾向于 数 ,和《汇编语言》第 2 章 实验 1 的实验内容相呼应。

实验 1 查看CPU和内存,用机器指令和汇编指令编程

大家讨论
ljm7315
[第4楼]   [ 回复时间:2007-11-14 11:49 ]   [引用]   [回复]   [ top ] 
荣誉值:2
信誉值:6
注册日期:2007-11-13 20:16
难道就没有其他通用一些的方法吗?
happy
[第5楼]   [ 回复时间:2007-11-14 11:59 ]   [引用]   [回复]   [ top ] 
荣誉值:32
信誉值:0
注册日期:2007-07-14 19:06
只能是通过debug查看了吧,或者你记住了每条指令占的字节数,这样就可以直接填上了,就可以不上机调试了。
要达到这样的程度,还得上机足够多的数量。编程跟上机是密不可分的,所以再简单的方法估计是没有了,我认为。上机是学习计算机学习编程义无反顾的事儿。
ljm7315
[第6楼]   [ 回复时间:2007-11-14 20:50 ]   [引用]   [回复]   [ top ] 
荣誉值:2
信誉值:6
注册日期:2007-11-13 20:16
谢谢指教!!!
ljm7315
[第7楼]   [ 回复时间:2007-11-18 11:14 ]   [引用]   [回复]   [ top ] 
荣誉值:2
信誉值:6
注册日期:2007-11-13 20:16
此贴由 贴主 于 [ 2007-11-18 11:14 ] 结贴。 结贴原因:问题已解决
得分情况: 1楼(sunshine):4分   3楼(Wednesday):4分   5楼(happy):4分  
此问题已结贴!
    Copyright © 2006-2024   ASMEDU.NET  All Rights Reserved