. : : Assembly Language : : .  |  首页  |  我提出的问题  |  我参与的问题  |  我的收藏  |  消息中心   |  游客  登录  | 
刷新 | 提问 | 未解决 | 已解决 | 精华区 | 搜索 |
  《汇编语言》论坛 ->INT指令
  管理员: assembly   [回复本贴] [收藏本贴] [管理本贴] [关闭窗口]
主题 : :  检测点13.1(2)  [已解决] 回复[ 7次 ]   点击[ 533次 ]  
yunhai13
[帖 主]   [ 发表时间:2008-04-11 15:31 ]   [引用]   [回复]   [ top ] 
荣誉值:2
信誉值:20
注册日期:2008-02-27 16:26
7ch中断代码如下:
assume cs:code
code segment
  start:mov ax,cs
        mov ds,ax
        mov si,offset lp
        mov ax,0
        mov es,ax
        mov di,200h
        mov cx,offset lpend-offset lp
        cld
        rep movsb
        mov ax,0
        mov es,ax
        mov word ptr es:[7ch*4],200h
        mov word ptr es:[7ch*4+2],0
        mov ax,4c00h
        int 21h
     lp:push bp
        mov bp,sp
        dec cx
        jcxz lpret
        add [bp+2],bx
  lpret:pop bp
        iret
  lpend:nop

code ends
end start
//////////////////////////////////////////////////////////////////////////////
运用7ch中断完成的程序如下:
assume cs:code,ds:data
data segment
      db 'conversation',0
data ends

code segment 
start:mov ax,data 
      mov ds,ax
      mov si,0
      mov ax,0b800h
      mov es,ax
      mov di,12*160
    s:cmp byte ptr [si],0
      je ok
      mov al,[si]
      mov es:[di],al
      inc si
      add di,2
      mov bx,offset s-offset ok
      int 7ch
   ok:mov ax,4c00h
      int 21h
code ends
end start
/////////////////////////////////////////////////////////////////////
我都编译后,先运行7ch中断例程,然后再运算调用程序,为什么没反应?
tomato
[第1楼]   [ 回复时间:2008-04-11 22:09 ]   [引用]   [回复]   [ top ] 
荣誉值:405
信誉值:0
注册日期:2008-01-19 14:51
看到楼主程序的一个问题就是,当用bp作为基址寄存器的时候,默认情况下段地址是ss而不是ds,而楼主却把它当成ds用了,这样访问就不对了。楼主改一下试试吧。这个说明在寻址方式那章有说明,楼主看看吧。
yunhai13
[第2楼]   [ 回复时间:2008-04-12 14:14 ]   [引用]   [回复]   [ top ] 
荣誉值:2
信誉值:20
注册日期:2008-02-27 16:26
看到楼主程序的一个问题就是,当用bp作为基址寄存器的时候,默认情况下段地址是ss而不是ds,而楼主却把它当成ds用了,这样访问就不对了。楼主改一下试试吧。这个说明在寻址方式那章有说明,楼主看看吧。
------------------
回复:你真逗~
不过我自己发现了个问题mov bx,offset lpend-offset lp
wdm
[第3楼]   [ 回复时间:2008-04-12 14:31 ]   [引用]   [回复]   [ top ] 
荣誉值:342
信誉值:0
注册日期:2007-12-06 10:21
Any question ??
yunhai13
[第4楼]   [ 回复时间:2008-04-12 14:45 ]   [引用]   [回复]   [ top ] 
荣誉值:2
信誉值:20
注册日期:2008-02-27 16:26
我又试了下,很可惜,int 7ch没发生效果,字母没转换成大写
谁给我个程序看看也是好的啊
tomato
[第5楼]   [ 回复时间:2008-04-12 15:14 ]   [引用]   [回复]   [ top ] 
荣誉值:405
信誉值:0
注册日期:2008-01-19 14:51
不好意思,我错了!
wangzh001
[第6楼]   [ 回复时间:2008-04-16 23:01 ]   [引用]   [回复]   [ top ] 
荣誉值:14
信誉值:0
注册日期:2008-03-23 07:47
你在什么地方有把小写换成大写的程序在啊...
yunhai13
[第7楼]   [ 回复时间:2008-04-17 15:05 ]   [引用]   [回复]   [ top ] 
荣誉值:2
信誉值:20
注册日期:2008-02-27 16:26
此贴由 贴主 于 [ 2008-04-17 15:05 ] 结贴。 结贴原因:问题已解决
得分情况: 6楼(wangzh001):12分  
此问题已结贴!
    Copyright © 2006-2024   ASMEDU.NET  All Rights Reserved