王爽 <<汇编 语言>> 13.6 BIOS中断例程应用

  1 ;名称:ILOVEU程序
  2 ;使用BIOS提供的中断例程
  3 assume cs:code
  4 code segment
  5 main:
  6           mov cx,880                    ;显示背景22*80
  7           mov dh,0        ;dh中放行号
  8           mov dl,0        ;dl中放列号
  9 bibi:
 10           push cx
 11           mov ah,2         ;显示光标
 12           mov bh,0         ;第0页
 13           int 10h
 14
 15           ;在光标处显示个数自定的字符
 16           mov ah,9         ;9为在"在光标处显示字符的功能"的功能号
 17           mov al,‘0‘               ;字符
 18           mov bl,00001010b         ;颜色属性
 19           mov bh,0         ;第 0 页
 20           mov cx,1         ;显示字符的个数
 21           int 10h
 22
 23           inc dl
 24           mov ah,2         ;显示光标
 25           mov bh,0         ;第0页
 26           int 10h
 27
 28           ;在光标处显示个数自定的字符
 29           mov ah,9         ;9为在"在光标处显示字符的功能"的功能号
 30           mov al,‘1‘               ;字符
 31           mov bl,00001010b         ;颜色属性
 32           mov bh,0         ;第 0 页
 33           mov cx,1         ;显示字符的个数
 34           int 10h
 35
 36           cmp dl,79
 37           jnz tt
 38           mov dl,-1
 39           inc dh
 40 tt:
 41           inc dl
 42           pop cx
 43           loop bibi
 44
 45           ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;显示I
 46
 47           ;在特定位置显示光标
 48           mov ah,2         ;显示光标
 49           mov bh,0         ;第0页
 50           mov dh,3         ;dh中放行号
 51           mov dl,2        ;dl中放列号
 52           int 10h
 53
 54           ;在光标处显示个数自定的字符
 55           mov ah,9         ;9为在"在光标处显示字符的功能"的功能号
 56           mov al,‘a‘               ;字符
 57           mov bl,11001010b         ;颜色属性
 58           mov bh,0         ;第 0 页
 59           mov cx,11         ;显示字符的个数
 60           int 10h
 61
 62           mov ah,2         ;显示光标
 63           mov bh,0         ;第0页
 64           mov dh,4         ;dh中放行号
 65           mov dl,2        ;dl中放列号
 66           int 10h
 67
 68           ;在光标处显示个数自定的字符
 69           mov ah,9         ;9为在"在光标处显示字符的功能"的功能号
 70           mov al,‘a‘               ;字符
 71           mov bl,11001010b         ;颜色属性
 72           mov bh,0         ;第 0 页
 73           mov cx,11         ;显示字符的个数
 74           int 10h
 75
 76           mov ah,2         ;显示光标
 77           mov bh,0         ;第0页
 78           mov dh,18         ;dh中放行号
 79           mov dl,2        ;dl中放列号
 80           int 10h
 81
 82           ;在光标处显示个数自定的字符
 83           mov ah,9         ;9为在"在光标处显示字符的功能"的功能号
 84           mov al,‘a‘               ;字符
 85           mov bl,11001010b         ;颜色属性
 86           mov bh,0         ;第 0 页
 87           mov cx,11         ;显示字符的个数
 88           int 10h
 89
 90           mov ah,2         ;显示光标
 91           mov bh,0         ;第0页
 92           mov dh,19         ;dh中放行号
 93           mov dl,2        ;dl中放列号
 94           int 10h
 95
 96           ;在光标处显示个数自定的字符
 97           mov ah,9         ;9为在"在光标处显示字符的功能"的功能号
 98           mov al,‘a‘               ;字符
 99           mov bl,11001010b         ;颜色属性
100           mov bh,0         ;第 0 页
101           mov cx,11         ;显示字符的个数
102           int 10h
103
104           mov cx,13
105           mov dh,5         ;dh中放行号
106 s5r6c:
107        mov ah,2         ;显示光标
108           mov bh,0         ;第0页
109           mov dl,6        ;dl中放列号
110           int 10h
111
112           ;在光标处显示个数自定的字符
113           mov ah,9         ;9为在"在光标处显示字符的功能"的功能号
114           mov al,‘a‘               ;字符
115           mov bl,11001010b         ;颜色属性
116           mov bh,0
117           push cx          ;第 0 页
118           mov cx,3         ;显示字符的个数
119           int 10h
120
121        pop cx
122        inc dh
123        loop s5r6c
124
125
126        ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;显示love
127        mov cx,11
128        mov dh,8          ;初始行号
129        mov dl,25         ;初始列号
130        mov ax,21         ;初始字符数
131        push ax
132        mov bp,sp         ;bp指向栈中保存的显示的字符数
133 s8r25c:
134        mov ah,2         ;显示光标
135           mov bh,0         ;第0页
136           int 10h
137
138           ;在光标处显示个数自定的字符
139           mov ah,9         ;9为在"在光标处显示字符的功能"的功能号
140           mov al,‘a‘               ;字符
141           mov bl,11001010b         ;颜色属性
142           mov bh,0         ;第 0 页
143           push cx
144
145           mov cx,[bp]          ;显示字符的个数
146           int 10h
147
148        pop cx
149        sub word ptr [bp],2
150        inc dh
151        inc dl
152        loop s8r25c
153
154        mov cx,5
155        mov dh,3          ;初始行号
156        mov dl,29         ;初始列号
157        mov ax,2         ;初始字符数
158        push ax
159        mov bp,sp         ;bp指向栈中保存的显示的字符数
160 s3r29c:
161        mov ah,2         ;显示光标
162           mov bh,0         ;第0页
163           int 10h
164
165           ;在光标处显示个数自定的字符
166           mov ah,9         ;9为在"在光标处显示字符的功能"的功能号
167           mov al,‘a‘               ;字符
168           mov bl,11001010b         ;颜色属性
169           mov bh,0         ;第 0 页
170           push cx
171
172           mov cx,[bp]          ;显示字符的个数
173           int 10h
174
175        pop cx
176        add word ptr [bp],2
177        inc dh
178        dec dl
179        loop s3r29c
180
181           mov cx,5
182        mov dh,3          ;初始行号
183        mov dl,40         ;初始列号
184        mov ax,2         ;初始字符数
185        push ax
186        mov bp,sp         ;bp指向栈中保存的显示的字符数
187 s3r40c:
188        mov ah,2         ;显示光标
189           mov bh,0         ;第0页
190           int 10h
191
192           ;在光标处显示个数自定的字符
193           mov ah,9         ;9为在"在光标处显示字符的功能"的功能号
194           mov al,‘a‘               ;字符
195           mov bl,11001010b         ;颜色属性
196           mov bh,0         ;第 0 页
197           push cx
198
199           mov cx,[bp]          ;显示字符的个数
200           int 10h
201
202        pop cx
203        add word ptr [bp],2
204        inc dh
205        dec dl
206        loop s3r40c
207
208                                                   ;;6r34c
209        mov ah,2         ;显示光标
210           mov bh,0         ;第0页
211           mov dh,6         ;dh中放行号
212           mov dl,34        ;dl中放列号
213           int 10h
214
215           ;在光标处显示个数自定的字符
216           mov ah,9         ;9为在"在光标处显示字符的功能"的功能号
217           mov al,‘a‘               ;字符
218           mov bl,11001010b         ;颜色属性
219           mov bh,0         ;第 0 页
220           mov cx,1         ;显示字符的个数
221           int 10h
222                                                   ;;6r36c
223           mov ah,2         ;显示光标
224           mov bh,0         ;第0页
225           mov dh,6         ;dh中放行号
226           mov dl,36        ;dl中放列号
227           int 10h
228
229           ;在光标处显示个数自定的字符
230           mov ah,9         ;9为在"在光标处显示字符的功能"的功能号
231           mov al,‘a‘               ;字符
232           mov bl,11001010b         ;颜色属性
233           mov bh,0         ;第 0 页
234           mov cx,1         ;显示字符的个数
235           int 10h
236                                                   ;;7r35c
237           mov ah,2         ;显示光标
238           mov bh,0         ;第0页
239           mov dh,7         ;dh中放行号
240           mov dl,35        ;dl中放列号
241           int 10h
242
243           ;在光标处显示个数自定的字符
244           mov ah,9         ;9为在"在光标处显示字符的功能"的功能号
245           mov al,‘a‘               ;字符
246           mov bl,11001010b         ;颜色属性
247           mov bh,0         ;第 0 页
248           mov cx,1         ;显示字符的个数
249           int 10h
250
251
252
253        ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;显示U
254        mov cx,14
255        mov dh,3          ;初始行号
256        mov dl,57         ;初始列号
257 s3r57c:
258        mov ah,2         ;显示光标
259           mov bh,0         ;第0页
260           int 10h
261
262           ;在光标处显示个数自定的字符
263           mov ah,9         ;9为在"在光标处显示字符的功能"的功能号
264           mov al,‘a‘               ;字符
265           mov bl,11001010b         ;颜色属性
266           mov bh,0         ;第 0 页
267           push cx
268           mov cx,3         ;显示字符的个数
269           int 10h
270           pop cx
271        inc dh
272        loop s3r57c
273
274        mov cx,14
275        mov dh,3          ;初始行号
276        mov dl,69         ;初始列号
277 s3r69c:
278        mov ah,2         ;显示光标
279           mov bh,0         ;第0页
280           int 10h
281
282           ;在光标处显示个数自定的字符
283           mov ah,9         ;9为在"在光标处显示字符的功能"的功能号
284           mov al,‘a‘               ;字符
285           mov bl,11001010b         ;颜色属性
286           mov bh,0         ;第 0 页
287           push cx
288           mov cx,3         ;显示字符的个数
289           int 10h
290           pop cx
291        inc dh
292        loop s3r69c
293
294        mov ah,2         ;显示光标
295           mov bh,0         ;第0页
296           mov dh,18        ;dh中放行号
297           mov dl,59        ;dl中放列号
298           int 10h
299
300           ;在光标处显示个数自定的字符
301           mov ah,9         ;9为在"在光标处显示字符的功能"的功能号
302           mov al,‘a‘               ;字符
303           mov bl,11001010b         ;颜色属性
304           mov bh,0         ;第 0 页
305           mov cx,11         ;显示字符的个数
306           int 10h
307
308           mov ah,2         ;显示光标
309           mov bh,0         ;第0页
310           mov dh,19        ;dh中放行号
311           mov dl,61        ;dl中放列号
312           int 10h
313
314           ;在光标处显示个数自定的字符
315           mov ah,9         ;9为在"在光标处显示字符的功能"的功能号
316           mov al,‘a‘               ;字符
317           mov bl,11001010b         ;颜色属性
318           mov bh,0         ;第 0 页
319           mov cx,7         ;显示字符的个数
320           int 10h
321
322           mov ah,2         ;显示光标
323           mov bh,0         ;第0页
324           mov dh,17        ;dh中放行号
325           mov dl,58        ;dl中放列号
326           int 10h
327
328           ;在光标处显示个数自定的字符
329           mov ah,9         ;9为在"在光标处显示字符的功能"的功能号
330           mov al,‘a‘               ;字符
331           mov bl,11001010b         ;颜色属性
332           mov bh,0         ;第 0 页
333           mov cx,3         ;显示字符的个数
334           int 10h
335
336           mov ah,2         ;显示光标
337           mov bh,0         ;第0页
338           mov dh,17        ;dh中放行号
339           mov dl,68        ;dl中放列号
340           int 10h
341
342           ;在光标处显示个数自定的字符
343           mov ah,9         ;9为在"在光标处显示字符的功能"的功能号
344           mov al,‘a‘               ;字符
345           mov bl,11001010b         ;颜色属性
346           mov bh,0         ;第 0 页
347           mov cx,3         ;显示字符的个数
348           int 10h
349
350        mov ah,2         ;显示光标
351           mov bh,0         ;第0页
352           mov dh,23        ;dh中放行号
353           mov dl,10        ;dl中放列号
354           int 10h
355
356
357
358
359
360           mov ax,4c00h
361           int 21h
362
363 code ends
364      end main

显示如下

时间: 2024-10-07 19:09:54

王爽 <<汇编 语言>> 13.6 BIOS中断例程应用的相关文章

王爽汇编 实验13

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 capital mov ax,0 mov es,ax mov di,200h mov cx,offset capitalend-offset capital cld rep movsb mov ax,0 mov es,ax mov word ptr es:[7

王爽汇编实验九

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

王爽汇编10.12

;10.12 assume cs:code,ds:data data segment db 'word',0 db 'unix',0 db 'wind',0 db 'good',0 data ends code segment start : mov ax,data mov ds,ax mov si,0 mov di,16 mov cx,4 s: call cap inc si loop s MOV AX,4C00H INT 21H cap: push cx tip: mov cl,[si] m

王爽汇编实验十一

;实验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

王爽汇编实验(三)

王爽汇编浅显易懂,虽然前面两个实验都做完了,但是都是吊儿郎当做完的. 看到第三次实验比较好写心得,就写了. 原码如下,用提到的LINK.EXE和MASM.EXE进行编译链接操作. assume cs:codesgcodesg segmentmov ax,2000Hmov ss,axmov sp,0add sp,10pop axpop bxpush axpush bxpop axpop bx mov ax,4c00Hint 21Hcodesg endsend 首先是用debug 跟踪t1.exe执

跟我学汇编(二)王爽汇编环境搭建

这一次我们来讲解一下如何在window上搭建一个王爽教材中所用的汇编环境.王爽的书中用的是8086CPU,现在的CPU肯定是不一样啦,所以我们使用虚拟机来模拟一下. 一.下载系统 我们采用MS-DOS7.10系统,这里我提供一个免费的下载地址http://download.csdn.net/detail/xingjiarong/9428514,上次我看到了一个哥们的环境搭建过程,搭建好系统下载竟然要5个积分,我一气之下就自己动手搭建一个.这里下载之后是一个DOS的IOS文件,下面我们就来安装这个

王爽 汇编 检测点10.4

一.要求 二.上机调试 1.debug调试开始,首先查看反编译后的汇编代码(假设ob38就是段地址1000) 2.执行第一条指令mov ax,6 3.执行第二条指令call ax,也就是call 6(我们知道,对于call 16位reg格式来说,相当于push ip:jmp 16位reg.) 执行了call ax,会将它的下一条指令的压入栈中也就是5压入栈中,软后跳转到ip=6的地方 此时ip=6 ,sp=fffe,查看栈中的数据 4.执行mov bp,sp,栈顶地址赋值给bp寄存器 5.执行a

王爽汇编笔记

  第一章 内存地址空间的地址段分配 地址:0~7FFFH的32kb空间为主随机存储器的地址空间 地址:8000~9FFFH的8kb空间为显存地址空间 地址:A000~FFFFH的24kb空间为各个rom的地址空间   第二章 进入DOS模式 重新启动计算机,进入DOS模式,此时进入的是实模式的DOS 在Windows中进入DOS方式,此时进入的是虚拟8086模式的DOS   使用命令 -R 查看寄存器内容 -R 寄存器 可以修改寄存器的内容 -D查看内存中的内容 –D 段地址:偏移地址 输入后

王爽汇编第三版检测点10.5

(1)下面的程序执行后,ax 中的数值是多少? 1 assume cs:code 2 stack segment 3 dw 8 dup (0) 4 stack ends 5 code segment 6 start: mov ax,stack 7 mov ss,ax 8 mov sp,16 9 mov ds,ax 10 mov ax,0 11 call word ptr ds:[0] 12 inc ax 13 inc ax 14 inc ax 15 mov ax,4c00h 16 int 21h