实验13(1)
2009-09-10 19:48
417 查看
题目:编写并安装Int 7ch中端例程,功能为显示一个用0结束的字符串,中断例程安装在0000:0200h处
参数:(dh)=行号,(dl)=列号,(cl)=颜色,ds:si指向字符串的首地址。
以上中断例程安装成功后,对下面的程序进行单步跟踪,尤其注意int、iret指令执行前后的cs、ip和栈中的状态。
参数:(dh)=行号,(dl)=列号,(cl)=颜色,ds:si指向字符串的首地址。
以上中断例程安装成功后,对下面的程序进行单步跟踪,尤其注意int、iret指令执行前后的cs、ip和栈中的状态。
assume cs:codesg datasg segment db "welcome to masm! ",0 datasg ends codesg segment start: mov ax,cs mov ds,ax mov si,offset show_s mov ax,0 mov es,ax mov di,0200h mov cx,offset show_e - offset show_s cld rep movsb;以上程序是复制中断例程的代码到0000:0200处 mov word ptr es:[7ch*4],0200h mov word ptr es:[7ch*4+2],0;设置中断向量表项 mov dh,10;行号 mov dl,10;列号 mov cl,2;颜色属性值 mov ax,datasg mov ds,ax mov si,0;设置ds:si指向字符串开始处 int 7ch mov ax,4c00h int 21h ;中断例程的对应代码 show_s: push cx push ax push es push di push ds push si push dx mov ax,0b800h mov es,ax add dl,dl mov ax,0 mov al,160 mul dh mov dh,0 add ax,dx mov di,ax;这里是根据dl(列号)和dh(行号)算出 ;es:di的开始地址 ;显示字符串的关键代码 show: mov dx, cx mov ch,0 mov al,ds:[si] mov cl,al jcxz ok mov cx,dx mov ah,cl mov es:[di],ax inc si add di,2 jmp short show ok:pop dx pop si pop ds pop di pop es pop ax pop cx iret show_e:nop codesg ends end start
相关文章推荐
- 王爽《汇编语言》实验13:编写、应用中断例程 - 打印字符串 解答
- C#--第2周实验--任务11--编写一个控制台应用--1列数规则如下:1,1,2,3,5,8,13,21,34...求第30位数是多少?(用递归算法实现)
- 实验13 OSPF基本配置
- 软工12-13-2 实验报告二——住房贷款计算器
- CCNP路由实验---13、基于帧中继环境下的OSPF实验之全互联广播
- Packet Tracer 5.0建构CCNA实验攻略(13)――帧中继Frame Relay
- 汇编语言(王爽)--实验13编写,应用中断历程
- 13计本2班第二次实验解析【补充】
- 实验13——结构体、文件的基本应用
- 软工12-13-2 实验报告三——住房贷款计算器所涉及到的数据及计算方法
- 软工12-13-2 实验报告五——住房贷款计算器最终完成效果及个人心得
- 实验13 编写、应用中断
- oracle实验13:单行函数-数字函数
- 第十三章实验13(3)
- 王爽汇编语言第二版学习笔记之实验13(1)
- 实验13:VLAN、VLAN Trunk、VTP和STP
- 实验13——结构体、文件的基本应用
- 正点原子 13 LED灯实验
- 13计本2班第二次实验解析
- 《操作系统》——实验课教学进度表——13专升本班——张同光