汇编语言-实验四-循环分支程序设计

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

实验四循环分支程序设计
一&实验目的
1、熟悉汇编语言源程序的编辑、汇编、连接及调试过程。

2、掌握循环及分支程序的设计方法;
3、学会针对不同的问题,选用不同的循环分支结构设计方法;
二&实验环境
微型计算机一台
DOS或WINDOWS操作系统,MASM开发套件。

三&实验要求
1、使用正确的指令格式和程序结构编写实验内容要求的所有程序;
2、对编写或改写的程序进行汇编连接时,注意对错误信息的处理;
3、熟悉源程序汇编、连接的使用方法。

四&实验内容
1、使用程序1掌握汇编语言程序上机过程,
2、阅读程序2,理解程序功能并上机运行,使用debug检验结果。

3、编写一个程序,判别键盘上输入的字符;若是1-9字符或A-Z ,则显示之;若为a-z字符,均显示“A-Z”;若是<ESC>(其ASCII码为1BH),则结束程序。

4、改写任务三中的程序:
输入小写字母a时,显示内容为aA*
输入小写字母a时,显示内容为a***
输入小写字母a时,显示内容为aa***
五&实验步骤
1、用EDIT编辑软件,编写.ASM源程序。

2、对其进行汇编及连接,产生.EXE文件。

3、在DOS下运行.EXE文件进行。

4、实验程序清单
1)程序1:
stack segment
dw 512 dup(?)
stack ends
data segment
string db 'Hello, Everybody !','$'
data ends
code segment
assume cs:code,ds:data,ss:stack
start: mov ax,data
mov ds,ax
mov dx,offset string
mov ah,9
int 21h
mov ax,4c00h
int 21h
code ends
end start
2)程序2
data segment
x db 20h
y dw ?
data ends
code segment
assume cs:code,ds:data
start: mov ax,data
mov ds,ax
mov al,x
mov bl,10
xor ah,ah
shl ax,1
mov bx,ax
mov cl,2
shl ax,cl
add ax,bx
mov y,ax
mov ax,4c00h
int 21h
code ends
end start
3)程序3:
data segment
message db 'This is a sample program of keyboard and disply' db 0dh,0ah,'Please strike the key!',0dh,0ah,'$'
data ends
code segment
assume cs:code,ds:data
start: mov ax,data
mov dx,offset message
mov ah,9
int 21h
again: mov ah,1
int 21h
cmp al,1bh
je exit
cmp al,61h
jc nd
cmp al,7ah
ja nd
and al,11011111b
nd: mov dl,al
mov ah,2
int 21h
jmp again
exit: mov ah,4ch
int 21h
code ends
end start
4)改写程序1:
data segment
message db 'This is a sample program of keyboard and disply' db 0dh,0ah,'Please strike the key!',0dh,0ah,'$'
data ends
code segment
assume cs:code,ds:data
start: mov ax,data
mov ds,ax
mov dx,offset message
mov ah,9
int 21h
again: mov ah,1
int 21h
cmp al,1bh
je exit
cmp al,61h
jc nd
cmp al,7ah
ja nd
and al,11011111b
mov ah,2
int 21h
mov al,'*'
nd: mov dl,al
mov ah,2
int 21h
jmp again
exit: mov ah,4ch
int 21h
code ends
end start
5)改写程序2:
data segment
message db 'This is a sample program of keyboard and disply' db 0dh,0ah,'Please strike the key!',0dh,0ah,'$'
data ends
code segment
assume cs:code,ds:data
start: mov ax,data
mov ds,ax
mov dx,offset message
mov ah,9
int 21h
again: mov ah,1
int 21h
cmp al,1bh
je exit
cmp al,61h
jc nd
cmp al,7ah
ja nd
mov al,'*'
mov cx,2
ok: mov dl,al
mov ah,2
int 21h
loop ok
nd: mov dl,al
mov ah,2
int 21h
jmp again
int 21h
code ends
end start
6)改写程序3:
data segment
message db 'This is a sample program of keyboard and disply' db 0dh,0ah,'Please strike the key!',0dh,0ah,'$'
data ends
code segment
assume cs:code,ds:data
start: mov ax,data
mov ds,ax
mov dx,offset message
mov ah,9
int 21h
again: mov ah,1
int 21h
cmp al,1bh
je exit
cmp al,61h
jc nd
cmp al,7ah
ja nd
mov dl,al
mov ah,2
int 21h
mov al,'*'
mov cx,2
ok: mov dl,al
mov ah,2
int 21h
loop ok
nd: mov dl,al
mov ah,2
int 21h
jmp again
exit: mov ah,4ch
int 21h
code ends
end start
六&思考题:编写一个程序,显示AL寄存器中的两位十六进制数。

相关文档
最新文档