王爽< 汇编语言>实验十二

 1 ;此乃安装程序
 2 ;功能:将8086cpu中断类型码为0 的中断向量设置为我们编写的中断服务程序入口地址
 3 ;该中断在除法发送溢出的时候产生
 4
 5 assume cs:code
 6 code segment
 7 main:
 8           mov ax,cs
 9           mov ds,ax
10           mov si,offset do    ;设置ds:si指向源地址
11
12           mov ax,0
13           mov es,ax
14           mov di,200h         ;设置es:di指向目的地址
15
16           mov cx,offset doend - offset do ;"-" 是编译器识别的运算符号,编译器可以用它来进行两个常数的减法
17                                                             ;设置cx为传输长度
18
19           cld                 ;设置传输方向为正
20
21           rep movsb                              ;开始传送
22
23
24           mov ax,0
25           mov es,ax
26           mov word ptr es:[0*4],200h
27           mov word ptr es:[0*4+2],0
28
29
30           mov ax,4c00h
31           int 21h
32
33 do:
34           jmp short doo
35           db "divide error!"
36 doo:
37           mov ax,cs
38           mov ds,ax
39           mov si,202h         ;设置ds:si指向字符串
40
41           mov ax,0b800h
42           mov es,ax
43           mov di,12*160+30*2  ;设置es:di指向显存空间的中间位置
44
45           mov cx,13           ;设置cx为字符串长度
46
47 s:
48           mov al,[si]
49           mov es:[di],al
50           inc si
51           add di,2
52           loop s
53
54           mov ax,4c00h
55           int 21h
56 doend:
57           nop
58 code ends
59      end main
60
61 ;产生除法溢出的程序
62 ;assume cs:code
63 ;code segment
64 ;main:
65 ;          mov ax,1000
66 ;          mov bh,1
67 ;          div bh
68 ;          mov ax,4c00h
69 ;          int 21h
70 ;code ends
71 ;     end main

时间: 2024-10-22 23:52:06

王爽< 汇编语言>实验十二的相关文章

王爽&lt;汇编语言&gt;实验十

实验十 3.数值显示(以下程序附带测试程序) 1 ;名称: dtoc 2 ;功能: 将dword型数据转变为表示十进制数的字符串,字符串以0为结尾 3 ;参数: (ax)=dword型数据低字 4 ; (dx)=dword型数据高字 5 ; ds:si指向字符串的首地址 6 ;返回: 无 7 assume cs:code 8 data segment 9 haha dd 4294967295 10 tata dd 16 dup(?) 11 data ends 12 code segment 13

王爽&lt;&lt;汇编语言&gt;&gt; 实验十四

1 ;以"年/月/日 时:分:秒"的格式, 显示当前的日期, 时间 2 assume cs:code 3 code segment 4 main: 5 mov al,9 6 out 70h,al ;告诉CMOS RAM将要访问的存储单元编号 7 in al,71h ;从该存储单元中读入数据 8 9 mov ah,al 10 mov cl,4 11 shr al,cl 12 add al,30h ;显示的年份的十位的ascii码 13 and ah,00001111b 14 add ah

汇编语言(王爽)实验十

实验要求: 在屏幕的8行3列,用绿色显示data段中的字符串. data段的数据: 'welcome to masm!',0 实验分析: 建立在实验九的基础上. 定位:8行3列. 输出:只能输出welcome to masm! 寄存器太多,不能重用. 解决第一个问题:di为屏幕上的位置.dh存的行,dl存的是列 解决第二个问题:loop循环退出的条件是cx寄存器为0 把data段传入cx.如果是0.退出. 1 assume cs:code 2 data segment 3 db 'Welcome

王爽-汇编语言-综合研究二-使用寄存器

(一) 研究概述 我们为什么必须使用变量?因为我们在编程时必须存储数据.那么如果可以使用别的方法存储数据,我们就可以不必因此目的而使用变量. 用什么方法来存储数据呢?在学习汇编语言是.我们把数据存储在寄存器和内存空间中.那么,在本次试验中,我们研究的是C语言中如何使用寄存器. (二) 研究过程 (1) 编写一个程序url.c 编译链接完成,用debug加载. -u查看如下: 这里的语句比较整齐有逻辑,像是某些功能的实现语句,但是往下-u,几次都看不到所写的语句. 这里,main函数的代码应该是在

王爽&lt;汇编语言&gt;实验十一 (附测试代码)

1 ;名称: letterc 2 ;功能: 将以0为结尾的字符串中的小写字母转变成大写字母 3 ;参数: ds:si指向字符串首地址 4 5 assume cs:code 6 7 data segment 8 db "Beginner's All-purpose Symbolic Instruction Code.",0 9 data ends 10 11 code segment 12 main: 13 mov ax,data 14 mov ds,ax 15 mov si,0 16

最强大的王爽汇编语言学习环境使用教程

最强大的王爽汇编语言学习环境使用教程 一.前言 这是采用VMwere Workstation 12 pro虚拟机软件,搭建的MS-DOS学习环境,在windowsXP/8/10及linux中均可以使用,在这个环境中,我集成了CCDOS中文系统,pdos中文系统,使用这些系统,可以进行中文输入与显示.还集成了,十分著名的汇编语言调试工具TR,它比debug更加强大.并且集成了适合王爽汇编语言学习的微软汇编语言编译器masm5和dos中最强大的文本编辑器 vim73 for DOS,这是一个支持彩色

王爽汇编实验九

1 ;实验九 2 assume cs:code,ds:data 3 data segment 4 db 'welcome to masm!' 5 data ends 6 7 code segment 8 start : 9 mov ax,data 10 mov ds,ax;定义数据段 11 12 mov ax,0B800h 13 mov es,ax;定义显示段 14 15 mov cx,16 16 mov si,0 17 mov di,10*160+80 ;将输出显示放在第10行中间 18 19

Linux基础入门(新版)(实验九-实验十二)

实验九 简单文本入门 一.常用的文本处理命令 二.文本处理命令 1.tr 命令 tr 命令可以用来删除一段文本信息中的某些文字.或者将其进行转换. 使用方式: tr [option]...SET1 [SET2]   常用的选项有: 选项 说明 -d 删除和set1匹配的字符,注意不是全词匹配也不是按字符顺序匹配 -s 去除set1指定的在输入文本中连续并重复的字符 操作举例: # 删除 "hello shiyanlou" 中所有的'o','l','h' $ echo 'hello sh

王爽汇编实验十一

;实验11 ;把小写字母换成大写字母 assume cs:code , ds:data data segment db "Beginner's All-purpose Symbolic Instruction Code.",0 data ends code segment start: mov ax,data mov ds,ax mov si,0 call letterc mov ax,4c00h int 21h letterc: push ax push si fun: mov al