博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
汇编题目:在屏幕中间显示a-z的所有字母,按ESC键改变字符颜色
阅读量:7113 次
发布时间:2019-06-28

本文共 1369 字,大约阅读时间需要 4 分钟。

在屏幕中显示a-z字母,按ESC键改变字符颜色。

;程序功能:在屏幕中间同一点显示a-z的所有字符;        1.使用cpu循环空运行实现延迟;        2.按ESC键改变正在循环显示的字符的颜色;        3.程序完成时,再次还原int9中断向量表assume cs:codedata segmentdb 100 dup(0)data endscode segmentstart:     ;init ds,es    mov ax,data    mov ds,ax    mov ax,0    mov es,ax        ; save int9 IP and CS    mov ax,es:[9*4]    mov ds:[0],ax    mov ax,es:[9*4+2]    mov ds:[2],ax    mov es:[9*4],offset int9    mov es:[9*4+2],cs        ;循环显示a-z的所有字符    mov ax,0b800h    mov es,ax    mov ah,'a'    show: mov es:[160*12+40*2],ah    call delay    ;调用延迟    inc ah    cmp ah,'z'    jna show        ;还原int9中断向量表    mov ax,0    mov es,ax    push ds:[0]    pop es:[9*4]    push ds:[2]    pop es:[9*4+2]        mov ax,4c00h    int 21h;使用cup循环空运行,实现延迟时间的作用;使用32位的借位减法实现 1000 0000 0000h 次数的循环delay:    push ax    push dx    mov dx,1000h    mov ax,0    s: sub ax,1    sbb dx,0    cmp ax,0    jne s    cmp dx,0    jne s    pop dx    pop ax    ret;实现int9中断例程;pushf是16位,pop是16位int9:        push ax    ;保存临时变量    in al,60h        pushf    ;用于call模拟int9后的popf操作    pushf    ;用于修改IF=0、TF=0 操作    pop bx    and bh,11111100b    push bx    popf    call dword ptr ds:[0]        ;调用完这个模拟的int9后,会执行iret操作    ;会先popf出第一次pushf的值        cmp al,1    jne int9ret    add byte ptr es:[160*12+40*2+1],11h    int9ret:    pop ax    iretcode endsend start

运行:我使用的是win7+masm6.15的环境,编译链接后直接debug xxx.exe,然后按g命令执行。

转载地址:http://fighl.baihongyu.com/

你可能感兴趣的文章
深入理解asp.net里的HttpModule机制
查看>>
java基础学习_常用类03_StringBuffer类、数组高级和Arrays类、Integer类和Character类_day13总结...
查看>>
Asp.net MVC Session过期异常的处理
查看>>
python ThreadPoolExecutor线程池使用
查看>>
IPTABLES 规则(Rules)
查看>>
关于URL编码
查看>>
深度学习的可解释性研究(一):让模型「说人话」
查看>>
QT5提示can not find -lGL的解决方法
查看>>
Silverlight/Windows8/WPF/WP7/HTML5周学习导读(9月17日-9月23日)
查看>>
Tap-Ahead:让移动搜索更加便捷的解决之道
查看>>
Windows Server2016 Hyper-v Cluster部署
查看>>
juniper路由器配置
查看>>
jQuery一点一滴系列教程(第三点)
查看>>
ARP解决方法/工具 真假ARP防范区别方法 ARP终极解决方案
查看>>
系统数据权限的实现方案
查看>>
华为vlan划分,单臂路由以及静态路由
查看>>
UCD 2010百度工作坊
查看>>
ssh2免密码登录
查看>>
4_move_find_into_model
查看>>
MySQL · 捉虫动态 · UK 包含 NULL 值备库延迟分析
查看>>