. : : Assembly Language : : .  |  首页  |  我提出的问题  |  我参与的问题  |  我的收藏  |  消息中心   |  游客  登录  | 
刷新 | 提问 | 未解决 | 已解决 | 精华区 | 搜索 |
  《汇编语言》论坛 ->INT指令
  管理员: assembly   [回复本贴] [收藏本贴] [管理本贴] [关闭窗口]
主题 : :  求检测点13.2的答案  [待解决] 回复[ 2次 ]   点击[ 598次 ]  
jeremy
[帖 主]   [ 发表时间:2012-08-03 14:30 ]   [引用]   [回复]   [ top ] 
荣誉值:0
信誉值:0
注册日期:2012-03-09 19:30
网上也找不到课后答案。虽然写了,但是不知道正确与否。求好心人~~~
jumpbird
[第1楼]   [ 回复时间:2014-09-14 22:50 ]   [引用]   [回复]   [ top ] 
荣誉值:0
信誉值:0
注册日期:2014-08-29 19:48
assume cs:code

data segment
        db 'conversation',0
data ends

code segment
start:  mov ax,cs
        mov ds,ax
        mov si,offset nr
        mov ax,0
        mov es,ax
        mov di,200h
        mov cx,offset nrend-offset nr
        cld
        rep movsb                 ;以上9句为安装中断例程

        mov word ptr es:[7ch*4],200h
        mov word ptr es:[7ch*4+2],0        ;以上2句为设置中断向量

 

        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                        ;如果是0跳出循环
        mov al,[si]
        mov es:[di],al
        inc si
        add di,2
        mov bx,offset s-offset ok        ;设置从标号ok到s的转移位移
        int 7ch                                ;转移到标号s处

ok:     mov ax,4c00h
        int 21h

nr:     push bp         ;定义中断例程[开始]
        mov bp,sp
        add [bp+2],bx
        pop bp
        iret            ;中断返回指令
nrend:  nop             ;定义中断例程[结束]

code ends
end start
wildwind
[第2楼]   [ 回复时间:2014-12-03 09:46 ]   [引用]   [回复]   [ top ] 
荣誉值:0
信誉值:0
注册日期:2013-04-07 16:06
两个程序还是分开写比较好吧,安装程序和举例程序
需要登录后才能回帖 -->> 请单击此处登录
    Copyright © 2006-2024   ASMEDU.NET  All Rights Reserved