. : : Assembly Language : : .  |  首页  |  我提出的问题  |  我参与的问题  |  我的收藏  |  消息中心   |  游客  登录  | 
刷新 | 提问 | 未解决 | 已解决 | 精华区 | 搜索 |
  《汇编语言》论坛 ->内中断
  管理员: assembly   [回复本贴] [收藏本贴] [管理本贴] [关闭窗口]
主题 : :  用中断7C代替jmp指令,将结尾为0的字符串显示  [待解决] 回复[ 0次 ]   点击[ 379次 ]  
youguiqing
[帖 主]   [ 发表时间:2010-08-21 20:31 ]   [引用]   [回复]   [ top ] 
荣誉值:6
信誉值:0
注册日期:2009-12-03 21:13
assume cs:code
data segment
        db 'conversation',0
data ends

stack segment
        dw 8 dup (0)
stack ends

code segment
start:mov ax,code
     mov ds,ax
     mov si,offset c7int
     mov ax,20h
     mov es,ax
     mov di,0
     mov cx,offset c7end-offset c7int
     rep movsb
     mov ax,0
     mov es,ax
     mov word ptr es:[7ch*4+2],0
     mov word ptr es:[7ch*4],200h
     mov ax,data
     mov ds,ax
     mov si,0
     mov ax,0b800h
     mov es,ax
     mov di,12*160+36*2
   s: cmp byte ptr [si],0
      je jiesu
      movsb
      inc di
      mov bx,offset s-offset jiesu ;这个位移一定要为负数,所以是S-jiesu
      int 7ch
jiesu:mov ax,4c00h
     int 21h
c7int:push bp
     mov bp,sp
     add ss:[bp+2],bx
     pop bp
     iret 
c7end:nop
    
    
code ends
end start
需要登录后才能回帖 -->> 请单击此处登录
    Copyright © 2006-2024   ASMEDU.NET  All Rights Reserved