IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 嵌入式 -> 汇编语言实验十三 -> 正文阅读

[嵌入式]汇编语言实验十三

编写、应用中断例程

一、 实验目的

  1. 学会自己编写不同功能的中断例程。
  2. 学习由int指令引发的中断。

二、实验内容或主要代码
1.编写并安装int 7ch中断例程,功能为显示一个用0结束的字符串,中断例程安装在0:200处。
参数: (dh)=行号, (dl)=列号, (cl)=颜色 ds:si指向字符串首地址
以上中断例程安装好后,对下面的程序进行单步跟踪,尤其注意int,iret指令执行前后cs,ip的和栈中的状态。
assume cs:code
data segment
db “welcome to masm!”,0
data ends
code segment

start: mov dh,10
mov dl,10
mov cl,2h
mov ax,data
mov ds,ax
mov si,0
int 7ch
mov ax,4c00h
int 21h
code ends
end start
2. 编写并安装int 7ch中断例程,功能为完成loop指令的功能。
参数:(cx)=循环次数,(bx)=位移。
以上中断例程安装好后,对下面的程序进行单步跟踪,尤其注意int,iret指令执行前后cs,ip的和栈中的状态。
在屏幕中间显示80个“!”
assume cs:code
code segment
start: mov ax, 0b800H
mov es, ax
mov di, 160*12
mov bx, offset s – offset se
mov cx, 80

s: mov byte ptr es:[di], ‘!’
add di, 2
int 7cH

se: nop
mov ax, 4c00H
int 21H
code ends
end start
3. 下面的程序,分别在屏幕的第2、4、6、8行显示4句英文诗。
assume cs:code
code segment
s1: db ‘Good,better,best,’,’ ′ s 2 : d b ′ N e v e r l e t i t r e s t , ′ , ′ ' s2: db 'Never let it rest,',' s2:dbNeverletitrest,,
s3: db ‘Till good is better,’,’ ′ s 4 : d b ′ A n d b e t t e r , b e s t . ′ , ′ ' s4: db 'And better,best.',' s4:dbAndbetter,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
add bx,2
inc si
loop ok
mov ax,4c00h
int 21h
code ends
end start

三、 实验结果或截图

  1. assume cs:code
    data segment
    db 'welcome to masm! ',0
    data ends
    code segment

start:mov ax,cs
mov ds,ax
mov si,offset do7
mov ax,0
mov es,ax
mov di,200h
mov cx,offset do7end-offset do7
cld
rep movsb
mov word ptr es:[7ch4],200h
mov word ptr es:[7ch
4+2],0
mov ax,data
mov ds,ax
mov si,0
mov dh,12
mov dl,40
mov cl,2
int 7ch
mov ax,4c00h
int 21h

do7:push ax
push si
push es
push di
push dx
push cx
mov ax,0b800h
mov es,ax
mov al,0A0h
mul dh
mov di,ax
mov al,2
mul dl
add di,ax

show:mov al,ds:[si]
cmp al,0
je ok
mov es:[di],al
inc si
inc di
mov es:[di],cl
inc di
jmp short show

ok: pop cx
pop dx
pop di
pop es
pop si
pop ax
iret

do7end: nop
code ends
end start
在这里插入图片描述单步跟踪提所给程序:
在这里插入图片描述在这里插入图片描述2. assume cs:code
code segment
start: call loop_7c
mov ax,0b800h
mov es,ax
mov di,16012
mov bx,offset s-offset se
mov cx,80
s: mov byte ptr es:[di],’!’
add di,2
int 7ch
se: nop
mov ax,4c00h
int 21h
loop_7c:
mov ax,cs
mov ds,ax
lea si,strat_7c
mov ax,0
mov es,ax
mov di,200H
mov cx,offset end_7c-offset strat_7c
cld
rep movsb
mov ax,0
mov ds,ax
mov word ptr ds:[7cH
4],200H
mov word ptr ds:[7cH*4+2],0H
ret
strat_7c: cmp cx,0
jz ok
dec cx
pop ax
add ax,bx
push ax
iret
ok: iret
end_7c:
code ends
end start
在这里插入图片描述在这里插入图片描述单步跟踪题所给程序:
在这里插入图片描述在这里插入图片描述3.
在这里插入图片描述在这里插入图片描述在这里插入图片描述

四、 实验分析或体会
中断信息可以来自CPU的内部和外部,当CPU内部有需要处理的事情发生时,将产生需要马上处理的中断信息,引发中断过程。BIOS和DOS在所提供的中断例程中包含了许多的子程序,在编程时,可以用int指令直接调用BIOS和DOS提供的中断例程,来完成某些工作,使编程变得简单。

  嵌入式 最新文章
基于高精度单片机开发红外测温仪方案
89C51单片机与DAC0832
基于51单片机宠物自动投料喂食器控制系统仿
《痞子衡嵌入式半月刊》 第 68 期
多思计组实验实验七 简单模型机实验
CSC7720
启明智显分享| ESP32学习笔记参考--PWM(脉冲
STM32初探
STM32 总结
【STM32】CubeMX例程四---定时器中断(附工
上一篇文章      下一篇文章      查看所有文章
加:2022-01-01 14:06:15  更:2022-01-01 14:08:05 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2025年1日历 -2025/1/9 3:41:56-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码