标题:请问这个中断程序有什么问题?
只看楼主
kd83kdi93
Rank: 2
等 级:论坛游民
帖 子:65
专家分:52
注 册:2011-9-18
结帖率:70%
已结贴  问题点数:20 回复次数:4 
请问这个中断程序有什么问题?
assume cs:code
data segment
    db 16 dup (0)
data ends
code segment
    start:
    mov ax,cs
    mov ds,ax
    mov si,offset a
    mov ax,data
    mov es,ax
    mov di,0
    mov cx,offset b-offset a
    cld
    rep movsb
    mov ax,0200h
    mov ds,ax
    mov ax,0
    mov word ptr ds:[2],data
    mov word ptr ds:[0],ax
    int 80h
   
    mov ax,4c00h
    int 21h
    code ends
    a:
    mov dx,1234h;
    iret
    b:
    nop
end start

使用80h中断让dx变成1234h  80h中断的内存应该是0200:0000 - 0003吧    但是我debug单步执行完int 80h直接就iret了    dx也没有变化  
不知道是本来就这样还是我的程序有问题   请教
搜索更多相关主题的帖子: start word 
2013-01-17 14:23
zklhp
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
来 自:china
等 级:贵宾
威 望:254
帖 子:11485
专家分:33241
注 册:2007-7-10
得分:10 
不懂帮顶
2013-01-17 15:39
wp231957
Rank: 16Rank: 16Rank: 16Rank: 16
来 自:神界
等 级:版主
威 望:422
帖 子:13681
专家分:53296
注 册:2012-10-18
得分:10 
单片机?
除了纯dos 好像都不能调用int

DO IT YOURSELF !
2013-01-18 08:50
无敌小超人
Rank: 1
等 级:新手上路
帖 子:3
专家分:5
注 册:2012-6-29
得分:0 
试试不用单步。用单步结果不一样的
2013-01-28 18:34
清微御宇
Rank: 6Rank: 6
来 自:开封
等 级:侠之大者
威 望:2
帖 子:318
专家分:497
注 册:2012-1-15
得分:0 
回复 楼主 kd83kdi93
一般在自己写中断例程(a)时,需要把它(a)安装在一块别的程序不会用到的内存中(0000:0200~0000:0300)而不是你自己随便申请的data段
    mov word ptr ds:[2],data

    mov word ptr ds:[0],ax中断向量也设错了0000:0200中的值(IP),0000:0202中的值(cs)!!!
!!!

[ 本帖最后由 清微御宇 于 2013-1-28 19:54 编辑 ]

Stay hungry , Stay foolish!
2013-01-28 19:40



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-396898-1-1.html




关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.354085 second(s), 8 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved