信息工程学院
《微型计算机技术及应用》实习报告
TOC \o "1-5" \h \z \o "Current Document" 一实验要求3
\o "Current Document" 二实验原理3
\o "Current Document" 三代码结构3
\o "Current Document" 四代码及注释3
\o "Current Document" 五 代码运行截图20
实验要求
把一开始做的密码验证、进入图形界面、自己设置调色板并画图、画窗口、 显示图像、定时中断控制、汉字显示以及多任务的实现等等整合起来,做成 一个简单的可以u盘启动的简易系统,还可以加上简易输入法和动画等, 每个人根据自己的能力和设想来完成最终的版本。
二实验原理
输入密码(huang),后台检测是否正确。正确,进入优盘启动系统桌面, 错误,显示Erroro并在桌面显示Hi!欢迎字样。并写明作者黄。
三代码结构
首先写一个密码验证程序,然后验证成功后跳转到图形显示界面。在图形显 示界面上画上需要显示的汉字。
四代码及注释
;判断密码是否正确,正确输出success,失败输出failed
;AX称为累加器,是CPU中使用最多,功能最强,执行效率的寄存器.
;BX称为基地址寄存器 ;CX称为计数寄存器.
;DX称为数据寄存器.
;没有本质上的区别,都是通用16位寄存器.
org 0x8400
jmp boot_start
string db ^rror!1
stringl db 'Welcome!'
string2 db fhuangf;扩展键盘 ascii 码 123456 不同
;db1 resb 10
;在此处申请了一个10个字节的空间
boot_start:
mov si, 0
;累加器初始化为0
for:
cmp si, 4
;计数器6输入的字符数大于等于6
ja success
;跳转S执行
mov ah, 10h
;接受字符
int 16h
;16h 里的 10h
cmp al, [string2+si];如果 al 不等于 str2
jne error;
jne error
;执行error
inc si
jmp for;循环执行
jmp for
;循环执行
error:;
error:
;输入密码错误
mov ax, cs;13h
mov ax, cs
;13h的参数
mov es, ax
mov bp, string;Error!
mov bp, string
;Error!
mov ah,13h;显亦字符串
mov ah,13h
;显亦字符串
mov bh,0
mov bl,41h
认
;ah高四位为背景色,al低四位为字体色颜色系统默
mov cx5 6
;字数
mov dh,2
mov dl,3
mov al, 1 int 10h jmp end
;行数
洌数
;调用13h
success:
;输入密码正确
mov ax, cs
mov es, ax
mov bp, stringl
mov ah,13h
mov bh,0
mov bl,41h
mov cx5
mov dh,2
mov dl,3
mov al, 1
int 10h
jmp for4
for4:
;图像部分
mov AH, OOh
;进入图形模式
mov AL, 13h
;显亦字符串
INT 10H
mov ax, 0900h
;调色板信息已经被写入内存9036H位置
mov es, ax
;接下来256位 为调色板信息
mov bx, 0036h
;9000到9036H为图片信息BMP
mov ch, Oh
for2:
mov al, ch
;dx端口编号
mov dx, 3c8h
:al端口值
out dx, al
;开始编辑调色板
mov dx, 3c9h;R
mov al, byte [es:bx+2]
;div/4
shr al, 1;shr为逻辑右移指令
shr al, 1;颜色太深,
除以4
out dx, al
mov al, byte [es:bx+1]
;G
shr al, 1
shr al, 1
out dx,al
mov al, byte [es:bx]
■ E*
shr al, 1
shr al, 1
out dx, al
add bx, 4
inc ch
cmp bx, 0436h
ja x
jmp for2
x:;画板倍息
x:
mov ax, OxaOOO;段基址
mov ds, ax
mov bx, 0 ;偏移地址
mov ax, 0900h;图片内存地址
mov es, ax
mov bp, 0436h
add bp, OxFAOO ;320*200=64000 到图片尾部
for