1、微 型计 算机技术及应用 实 习报 告2016 年 12 月30 日一实验要求 . 3二 实验原理 . 3三 代码结构 . 3四 代码及注释 . 3五 代码运行截图 . 20一 实验要求把一开始做的密码验证、 进入图形界面、 自己设置调色板并画图、 画窗口、显示图像、 定时中断控制、 汉字显示以及多任务的实现等等整合起来, 做成一个简单的可以 U 盘启动的简易系统, 还可以加上简易输入法和动画等,每个人根据自己的能力和设想来完成最终的版本。二 实验原理输入密码(huang) , 后台检测是否正确。 正确, 进入优盘启动系统桌面,错误, 显示 Error。 并在桌面显示 Hi! 欢迎字样。 并写
2、明作者黄。三 代码结构首先写一个密码验证程序, 然后验证成功后跳转到图形显示界面。 在图形显示界面上画上需要显示的汉字。四 代码及注释;判断密码是否正确, 正确输出 success, 失败输出 failed;AX 称为累加器,是 CPU 中使用最多,功能最强,执行效率的寄存器.;BX 称为基地址寄存器;CX 称为计数寄存器.;DX 称为数据寄存器.;没有本质上的区别,都是通用 16 位寄存器.org 0x8400jmp boot_startstring db Error!string1 db Welcome!string2 db huang ;扩展键盘 ascii 码 123456 不同;db
3、1 resb 10;在此处申请了一个 10 个字节的空间boot_start:mov si, 0;累加器初始化为 0for:cmp si, 4;计数器 6 输入的字符数大于等于 6ja success;跳转 s 执行mov ah, 10h;接受字符int 16h;16h 里的 10hcmp al, string2+si ;如果 al 不等于 str2jne error;执行 errorinc si;累加器+1jmp for;循环执行error:;输入密码错误mov ax, cs;13h 的参数mov es, axmov bp, string;Error!mov ah,13h;显示字符串mov
4、bh,0mov bl,41h;ah 高四位为背景色, al 低四位为字体色 颜色系统默认mov cx, 6;字数mov dh,2;行数mov dl,3;列数mov al, 1int 10h;调用 13hjmp endsuccess:;输入密码正确mov ax, csmov es, axmov bp, string1mov ah,13hmov bh,0mov bl,41hmov cx, 8mov dh,2mov dl,3mov al, 1int 10hjmp for4for4:;图像部分mov AH, 00h;进入图形模式mov AL, 13h;显示字符串INT 10Hmov ax, 0900h
5、;调色板信息已经被写入内存 9036H 位置mov es, ax;接下来 256 位 为调色板信息mov bx, 0036h;9000 到 9036H 为图片信息 BMPmov ch, 0hfor2:mov al, ch;dx 端口编号mov dx, 3c8h;al 端口值out dx, al;开始编辑调色板mov dx, 3c9h;Rmov al, byte es:bx+2 ;div/4shr al, 1;shr 为逻辑右移指令shr al, 1;颜色太深, 除以 4out dx, almov al, byte es:bx+1 ;Gshr al, 1shr al, 1out dx, almo
6、v al, byte es:bx;Bshr al, 1shr al, 1out dx, aladd bx, 4inc chcmp bx, 0436hja xjmp for2x:;画板信息mov ax, 0xa000;段基址mov ds, axmov bx, 0;偏移地址mov ax, 0900h;图片内存地址mov es, axmov bp, 0436hadd bp, 0xFA00;320*200=64000 到图片尾部for3:mov cl, byte es:bpmov byte ds:bx, clinc bxsub bp, 1;倒着画cmp bx, 0xFA00;检测图片是不是画完了ja
7、z;画完了 结束jmp for3;没有 执行循环z:mov ax,0a000h;起始点mov es,ax;段基址mov bx,57e4h;最初起始点 70*320+100=22500mov ax,0;初始化a:mov byte es:bx,04eh;04eh 红色 画点add bx,320;每隔 320 像素点画一次cmp bx,0a2e4h;判断是否到达终止点 130*320+100=41700ja b;到达终点跳到下一个起始点jmp a;未到到终点 执行循环b:mov bx,7d64h;下一个起点 100*320+100=32100c:mov byte es:bx,04ehadd bx,1
8、cmp bx,7d82h;100*320+130 = 32130ja djmp cd:mov bx,5802h;70*320+130 = 22530e:mov byte es:bx,04ehadd bx,320cmp bx,0a302h;130*320+130 = 41730ja fjmp ef:mov bx,5820h;70*320+160 = 22560g:mov byte es:bx,04ehadd bx,320cmp bx,64a0h;80*320+160 = 25760ja hjmp gh:mov bx,7da0h;100*320+160 = 32160i:mov byte es:b
9、x,04ehadd bx,320cmp bx,0a320h;130*320+160 = 41760ja jjmp ij:mov bx,583eh;70*320+190 = 22590k:mov byte es:bx,04ehadd bx,320cmp bx,7dbeh;100*320+190 = 32190ja ljmp kl:mov bx,96beh;120*320+190 = 38590m:mov byte es:bx,04ehadd bx,320cmp bx,0a33eh;130*320+190 = 41790ja njmp mn:mov bx,1914h;20*320+20 = 642
10、0 黄字开始o:mov byte es:bx,04hadd bx,1cmp bx,1950h;20*320+80 = 6480 第一横ja pjmp op:mov bx,3200h;40*320 = 12800 第二横开始q:mov byte es:bx,04hadd bx,1cmp bx,3264h;40*320+100 = 12900ja rjmp qr:mov bx,28h;40 第三竖开始s:mov byte es:bx,04hadd bx,320cmp bx,3228h;40*320+40 = 12840ja tjmp st:mov bx,3ch;60 第四竖开始u:mov byte
11、 es:bx,04hadd bx,320cmp bx,323ch;40*320+60 = 12860ja vjmp uv:mov bx,4b1eh;60*320+30 = 19230 第五竖w:mov byte es:bx,04hadd bx,320cmp bx,7d1eh;100*320+30 = 32030ja xxjmp wxx:mov bx,4b1eh;60*320+30 = 19230 第六横y:mov byte es:bx,04hadd bx,1cmp bx,4b46h;60*320+70 = 19270ja aajmp yaa:mov bx,4b46h;60*320+70 = 1
12、9270 第七竖bb:mov byte es:bx,04hadd bx,320cmp bx,7d46h;100*320+70 = 32070ja ccjmp bbcc:mov bx,641eh;80*320+30 = 25630 第八横dd:mov byte es:bx,04hadd bx,1cmp bx,6446h;80*320+70 = 25670ja eejmp ddee:mov bx,7d1eh;100*320+30 = 32030 第九横ff:mov byte es:bx,04hadd bx,1cmp bx,7d46h;100*320+70 = 32070ja ggjmp ffgg:
13、mov bx,3eb2h;50*320+50 = 16050 第十竖hh:mov byte es:bx,04hadd bx,320cmp bx,7d32h;100*320+50 = 32050ja iijmp hhii:mov bx,9628h;120*320+40 = 38440 第十一撇jj:mov byte es:bx,04hadd bx,319cmp bx,0af14h;140*320+20 = 44820ja kkjmp jjkk:mov bx,963ch;120*320+60 = 38460 第十二捺ll:mov byte es:bx,04hadd bx,321cmp bx,0af50h;140*320+80 = 44880ja zjmp llend:jmp end;成功后跳转jmp end;成功后跳转五 代码运行截图输入密码错误输 入密码 正确
copyright@ 2008-2023 冰点文库 网站版权所有
经营许可证编号:鄂ICP备19020893号-2