《汇编语言(第3版)》王爽 第十三章实验
来源:互联网 发布:python自动化运维系统 编辑:程序博客网 时间:2024/05/23 12:16
1、编写int 7ch中断例程,功能显示一个0结束的字符串,中断例程安装在0:200处
;功能:调用7ch中断例程,显示0结束的字符串assume cs:codedata segment db "Welcome to masm!",0data endscode segment start: mov dh,10;行号 mov dl,10;列号 mov cl,2;颜色 mov ax,data mov ds,ax mov si,0 int 7ch mov ax,4c00h int 21hcode endsend start
;功能:安装7ch中断例程到0:200处;7ch中断例程作用,显示一个0结束的字符串。;思路:要先复制中断程序到相应内存中,再把中断程序的地址写到中断向量表中assume cs:code,ss:stackstack segment dw 8 dup (0)stack endscode segment start:;利用movsb指令复制程序 mov ax,cs;movsb使用前先设置好源地址ds:si, mov ds,ax mov si,offset cpstart mov ax,0;目标地址es:[di], mov es,ax mov di,200h mov cx,offset cpend - offset cpstart;复制长度, cld;复制方向, rep movsb;循环复制。;绑定中断向量表 mov ax,200h mov word ptr es:[7ch*4],ax;在7ch*4处写入偏移地址 mov word ptr es:[7ch*4+2],0;在7ch*4+2写入段地址 mov ax,4c00h int 21h cpstart:;显示0结束字符串的中断例程 dec dh;现把给定行号dh,列号dl转化成首地址 mov al,dh;思路:(dh-1)x 160 + (dl-1) x 2 mov bl,160 mul bl mov dh,0 dec dl add ax,dx add ax,dx mov bx,ax;把转化结果暂存在bx中 mov ax,0b800h;把字符串显示在屏幕中 mov es,ax mov di,bx s: cmp byte ptr [si],0h je ok mov al,[si] mov es:[di],al mov es:[di+1],cl inc si add di,2 jmp short s ok: iret cpend: nopcode endsend start
2、编写并安装int 7ch中断例程,功能为完成loop指令的功能
;本程序为7ch调用程序,功能实现在屏幕显示80个!assume cs:codecode segment start:;调用7ch实现loop的功能 mov ax,0b800h mov es,ax mov di,160*12 mov bx,offset s - offset se;loop指令跳转偏移量 mov cx,80;loop指令循环次数 s: mov byte ptr es:[di],'!' add di,2 int 7ch se: nop mov ax,4c00h int 21hcode endsend start
;功能:用int7ch中断例程实现loop指令的功能;思路:loop指令实现跳转必须知道循环次数、偏移量;其次loop中cx是需要每次减少的assume cs:code,ss:stackstack segment dw 8 dup (0)stack endscode segment start:;7ch中断安装程序 mov ax,cs mov ds,ax mov si,offset cpstart mov ax,0 mov es,ax mov di,200h mov cx,offset cpend - offset cpstart cld rep movsb mov ax,200h mov word ptr es:[7ch*4],ax mov word ptr es:[7ch*4+2],0 mov ax,4c00h int 21h cpstart:;中断例程实现loop功能 dec cx;loop中的cx每次减少 jcxz ok mov bp,sp;bp指令的段地址默认是在ss中 add [bp],bx;实现跳转的本质就是改变ip值 ok: iret cpend: nopcode endsend start
3、在屏幕的2,4,6,8行显示4句英文诗
;功能:在屏幕的2,4,6,8行显示4句英文诗assume cs:codedata segment db "Welcome to masm!",0data endscode segment s1: db 'Good,better,best,','$' s2: db 'Never let it rest,','$' s3: db 'Till good is better,','$' s4: db 'And better,best.','$' s: dw offset s1, offset s2, offset s3, offset s4 row: db 2,4,6,8 start: mov ax,cs mov ds,ax mov bx,offset s mov si,offset row mov cx,4 ok: mov bh,0 mov dh,[si] mov dl,0 mov ah,2 int 10h mov dx,[bx] mov ah,9 int 21h inc si add bx,2 loop ok mov ax,4c00h int 21hcode endsend start
0 0
- 《汇编语言(第3版)》王爽 第十三章实验
- 《汇编语言(第3版)》王爽 第十章实验
- 《汇编语言(第3版)》王爽 第十一章实验
- 《汇编语言(第3版)》王爽 第十二章实验
- 《汇编语言(第3版)》王爽 第十四章实验
- 《汇编语言(第3版)》王爽 第十五章实验
- 《汇编语言(第3版)》王爽 第十六章实验
- 《汇编语言(第3版)》王爽 第十七章实验
- 王爽《汇编语言》(第3版) 实验七
- [汇编语言]《汇编语言 第3版》P121 实验4(3)自己的写法
- 王爽《汇编语言》第十三章实验——int指令引发的中断
- 《汇编语言(第3版)》王爽 纠错
- 王爽《汇编语言》第9章 实验9 根据材料编程
- 王爽《汇编语言》第10章 实验10 编写子程序
- 汇编语言 王爽(第三版)实验十一
- 汇编语言 王爽(第三版)实验十三
- 汇编语言 王爽(第三版)实验十五
- 汇编语言 王爽(第三版)实验十六
- 机器学习系列(16)_怎样找到一份深度学习的工作(附学习材料,资源与建议)
- windows下,搭建使用Radius做身份认证及记账的VPN服务器
- Mysql注释
- LD: SYMBOL(S) NOT FOUND FOR ARCHITECTURE ARMV7
- informix-connstra
- 《汇编语言(第3版)》王爽 第十三章实验
- 教女友学编程-3-第一个程序不是HelloWorld
- Source Code of Sonar Treasure Hunt
- 于是很弱的我也开了一个博客= =
- 关于重装系统后部分文件呈绿色的原因
- Android 高手进阶之自定义View,自定义属性(带进度的圆形进度条)
- IntelliJ IDEA导入已经存在的java代码
- AXIS2实现webservice
- sfasfsf