狂潮丶 发表于 2013-8-5 22:14:45

Assembly language 实验15

实验15
assume cs:code, ss:stack

stack segment
    db 128 dup(0)
stack ends

code segment
start:
    mov ax, stack
    mov ss, ax
    mov sp, 128

    push cs
    pop ds
    mov si, offset int9                  ; ds:si指向源地址
    mov ax, 0
    mov es, ax
    mov di, 204H                         ; es:di指向目的地址
    mov cx, offset int9end-offset int9   ; 传输长度
    cld                                  ; 传输方向为正
    rep movsb
   
    push es:
    pop es:
    push es:
    pop es:         
   
    cli
    mov word ptr es:, 204H
    mov word ptr es:, 0
    sti
   
    mov ax, 4c00H
    int 21H

; ****************************************
; 新的int 9中断历程
; 在DOS下, 按下"A"键后, 除非不松开, 否则显示满屏幕的"A", 其它情况正常处理
int9:
    push ax
    push bx
    push cx
    push es
   
    in al, 60H                  ; 从键盘读取输入字符
   
    pushf
    call dword ptr cs:    ; 使用原来的int 9中断处理一般字符
   
    cmp al, 9EH               ; 判断按下A键后是否松开
    jne int9ret
   
    mov ax, 0b800H
    mov es, ax
    mov bx, 0                   ; es:bx为显示区首地址
    mov cx, 2000                ; 满屏可显示2000个字符
s:
    mov byte ptr es:, 'A'
    add bx, 2
    loop s
   
int9ret:
    pop es
    pop cx
    pop bx
    pop ax
    iret

int9end:
    nop
; ****************************************
code ends
end start




**** Hidden Message *****

www5956 发表于 2014-5-2 11:26:53

这是?!!!!!!!!!!!

进击的小灰灰 发表于 2014-9-4 11:15:05

{:5_91:}{:5_91:}求分享

ghuibin 发表于 2014-9-4 21:18:00

{:5_107:}我是来打酱油的

shelty 发表于 2015-9-22 22:31:57

123

林子军 发表于 2017-6-5 06:24:07

11111

kyowjw01 发表于 2017-6-9 16:10:00

过来看看

李水逝 发表于 2020-1-9 16:10:08

6666666666666666666

mmy555 发表于 2020-4-16 22:07:43

1
页: [1]
查看完整版本: Assembly language 实验15