微机原理实验4
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
微机原理实验4
一、实验目的
通过本节课的实验,让学生理解和掌握循环程序运行和设计原理,理解构成循环程序的指令功能,特别是对转移指令、循环计数的深入理解,并掌握一些常用循环程序设计的算法。
二、实验内容
[实验内容一]:BIOS显示中断调用——INT 10H
调用步骤:
第一步:置入口参数
第二步:功能号(0至15)送AH
第三步:INT 10H
(1)2号功能,屏幕光标定位
格式:MOV BH,0 ;页号0送BH
MOV DH,行号;行号:0~25
MOV DL, 列号;列号:0~79
MOV AH,2
INT 10H
功能:屏幕光标定位在DH行,DL列。行26x列80
(2)9号功能,在当前光标位置写字符和字符属性
格式:MOV BH , 0
MOV BL, 字符属性码;
MOV AL,‘字符’
MOV AH,9
MOV CX,N
INT 10H
功能:在屏幕光标位置显示N个AL中的‘字符’,并显示字符的属性。
字符属性码(送BL)的含义如下:
说明:
D7:1 前景字符闪烁;0 前景字符不闪烁
D6 D4 D5(RGB):
背景颜色,排列含义如下
000 黑色;001 蓝色;010 绿色;011 青色
100 红色;101 品红; 110 棕色; 111 白色
D4 D3 D2 D1(IRGB):前景颜色,排列含义如下
注:10号功能除不写字符属性外,其它与9 号功能一样。
实验实例1:在宏汇编MASM5.0下,编辑运行下列程序,阅读程序实验运行显示效果。
D:\masm5>edit ab2.asm
data segment
b db 0f0H ;背景色
q db 00H ;前景色
n db 8 ;显示行数data ends
code segment
assume cs:code,ds:data start:mov ax,data
mov ds,ax
mov b,0f0H
mov n,8
aa1:mov bl,b
add bl,q
mov ah,9
mov bh,0
mov al,'*'
mov cx,10 int 10h
mov dl,0dh mov ah,2 int 21h
mov dl,0ah mov ah,2 int 21h
inc q
sub b,10h dec n
jnz aa1
mov ah,4ch int 21h
code ends end start
[实验内容二]:循环程序设计
1、[实验内容] 利用宏汇编MASM5.0编程计算下列各题,并显示结果(注:显示十进制数结果,利用实验3中定义的宏指令)(1)计算5!
(2)计算S=1!+2!+3!+4!+5!
(3)计算S=1×2+2×3+……+10×11
(4)计算S=1+3+5+…+99
(5)计算S=12+22+32+…+102
2、[实验要求] 程序主要代码部分如下,同学们根据汇编语言的格式改成上机实验程序。
(1)第1题主要代码部分
MOV CX,5
MOV AX,1
MOV BX,1
LP1:MUL BX
ADD BX,1
LOOP LP1
(2)第2题主要代码部分
MOV CX,5
MOV AX,1
MOV BX,1
LP1:MUL BX
ADD S,AX ;定义数据段中字变量S,存放阶乘的和。
INC BX
LOOP LP1
(3)第3题主要代码部分
MOV CX,10
MOV S,0 ;定义数据段中字变量S,存放和。
MOV AX,1
MOV BX,2
AA1:MUL BX
ADD S,AX
MOV AX,BX
INC BX
LOOP AA1
(4)第4题主要代码部分
MOV CX,50
MOV S,0
MOV AX,1
AA1:ADD S,AX
ADD AX,2
LOOP AA1
(5)第5题主要代码部分
MOV CX , 10
MOV AX , 1
MOV BX, 1
AA1: MUL BX
ADD S, AX
INC BX
MOV AX, BX
LOOP AA1
[实验内容三]:利用串操作指令中的传送指令,编程从字串变量A处存放的一串字符‘ABC$’传送到字串变量B处,并显示B处该字符串。
程序清单如下:
data segment
A db 'ABC$'
B db 4 dup('$')
data ends
code segment
assume cs:code,ds:data start:mov ax,data
mov ds,ax
mov es,ax
cld
lea si,a
lea di,b
mov cx,4
rep movsb lea dx,b mov ah,9 int 21h
mov ah,4ch int 21h
code ends end start