. : : Assembly Language : : .  |  首页  |  我提出的问题  |  我参与的问题  |  我的收藏  |  消息中心   |  游客  登录  | 
刷新 | 提问 | 未解决 | 已解决 | 精华区 | 搜索 |
  《汇编语言》论坛 ->转移指令的原理
  管理员: assembly   [回复本贴] [收藏本贴] [管理本贴] [关闭窗口]
主题 : :  检测点9.1(3)的问题  [已解决] 回复[ 3次 ]   点击[ 333次 ]  
wscjsh
[帖 主]   [ 发表时间:2008-11-17 13:40 ]   [引用]   [回复]   [ top ] 
荣誉值:3
信誉值:31
注册日期:2007-08-16 23:26
我一运行我的程序就显示 NTVDM CPU遇到无效的指令.请大家帮我看看哪错了.
并请告诉我正确的程序如何写.
下面是我写的程序.打错运行后验证cs 和ip的值
=======================
assume cs:code
code segment
        start:mov ax,2000h
              mov es,ax
              jmp dword ptr es:[1000h]
              mov ax,4c00h
              int 21h
code ends
end start
mouse
[第1楼]   [ 回复时间:2008-11-17 18:17 ]   [引用]   [回复]   [ top ] 
荣誉值:472
信誉值:12
注册日期:2007-10-16 15:34
我一运行我的程序就显示 NTVDM CPU遇到无效的指令
----------------
首先是不是每个人的电脑运行楼主的程序都会出现这样的情况,那为什么呢??

jmp dword ptr es:[1000h] 
--------
它的功能是什么?es:[1000h]存放的数据是什么能确定吗?
mess
[第2楼]   [ 回复时间:2008-11-18 18:56 ]   [引用]   [回复]   [ top ] 
荣誉值:337
信誉值:0
注册日期:2008-01-01 17:48
jmp修改的是cs和ip,把未知的数据赋值给他们,也就是让cpu执行位置的指令,所以也有可能出现未知的错误。

一个程序之所以实现了我们的功能,是因为指令了我们让他执行的指令,所以上面的问题没有什么实际意义。
wscjsh
[第3楼]   [ 回复时间:2008-11-19 07:33 ]   [引用]   [回复]   [ top ] 
荣誉值:3
信誉值:31
注册日期:2007-08-16 23:26
此贴由 贴主 于 [ 2008-11-19 07:33 ] 结贴。 结贴原因:问题已解决
得分情况:
此问题已结贴!
    Copyright © 2006-2024   ASMEDU.NET  All Rights Reserved