. : : Assembly Language : : .  |  首页  |  我提出的问题  |  我参与的问题  |  我的收藏  |  消息中心   |  游客  登录  | 
刷新 | 提问 | 未解决 | 已解决 | 精华区 | 搜索 |
  《汇编语言》论坛 ->INT指令
  管理员: assembly   [回复本贴] [收藏本贴] [管理本贴] [关闭窗口]
主题 : :  安装实验13.2的中断程序,问题很奇怪,之前一直运行正确,今天结果就不正确了,不知道错在哪里  [待解决] 回复[ 4次 ]   点击[ 583次 ]  
ltp1234
[帖 主]   [ 发表时间:2012-05-17 22:04 ]   [引用]   [回复]   [ top ] 
荣誉值:0
信誉值:0
注册日期:2011-04-06 22:45
安装实验13.2的中断程序,问题很奇怪,之前一直运行正确,今天结果就不正确了,不知道错在哪里,我是在windows的command下面运用的debug,不知道是不是系统本身问题,之前做课程设计1的时候也很奇怪(写数据的显存地址b800:0000有时候不能显示数据,而设定成其他比如B81E:0000就可以)。所以我像看看装了虚拟机的朋友们,看看这个程序有没有什么问题??谢谢
代码如下:
assume cs:codesg
codesg segment
        ;==安装中断程序==
start:                mov ax,cs
                mov ds,ax
                mov si,offset do
                mov ax,0
                mov es,ax
                mov di,200h
                mov cx,offset doend-offset do
                cld
                rep movsb
        ;==设置中断向量==
                mov ax,0
                mov ds,ax
                mov word ptr ds:[7ch*4+0],200h
                mov word ptr ds:[7ch*4+2],0
                
                mov ah,4ch
                int 21h
        ;==中断程序==
do:                push bp
                dec cx
                jcxz s
                mov bp,sp
                add [bp+2],bx        ;bp的默认寄存器是ss
s:                pop bp
                iret
doend:        nop                
codesg ends
end start
tomato
[第1楼]   [ 回复时间:2012-05-18 23:07 ]   [引用]   [回复]   [ top ] 
荣誉值:405
信誉值:0
注册日期:2008-01-19 14:51
程序应该是没有问题的。
tomato
[第2楼]   [ 回复时间:2012-05-18 23:08 ]   [引用]   [回复]   [ top ] 
荣誉值:405
信誉值:0
注册日期:2008-01-19 14:51
建议换个运行环境试试。
ltp1234
[第3楼]   [ 回复时间:2012-06-26 22:21 ]   [引用]   [回复]   [ top ] 
荣誉值:0
信誉值:0
注册日期:2011-04-06 22:45
谢谢tomato,在虚拟机Oracle VM VirtualBox环境下dos能够验证程序正确。。。
09iopiop
[第4楼]   [ 回复时间:2012-07-21 10:24 ]   [引用]   [回复]   [ top ] 
荣誉值:0
信誉值:0
注册日期:2012-07-08 21:18
嗯 确实如此 有时候显示的不是第一页的内容
需要登录后才能回帖 -->> 请单击此处登录
    Copyright © 2006-2024   ASMEDU.NET  All Rights Reserved