第二次实验二 汇编语言程序设计
更新时间:2024-03-05 08:03:01 阅读量: 综合文库 文档下载
- 第二次里实验推荐度:
- 相关推荐
《微机实验及课程设计》
实验报告
实验二 汇编语言程序设计
姓 名: 学 号: 专 业: 测控技术与仪器 实 验 室: 516 评定成绩: 审阅教师:
一、实验目的
1、近一步熟悉汇编语言的编辑、宏汇编、链接和运行的基本概念
2、熟练掌握动态调试程序TD/DEBUG的常用指令和窗口功能,学会用TD/DEBUG调试程序,修改数据和寄存器环境
3、熟悉掌握汇编语言程序的典型数据结构设计、典型程序控制方法,了解DOS/BIOS功能调用的基本方法 二、实验内容(必做)
2-1、从键盘输入任意字符串后,存入自定义存储单元,判断处理后将字符串中小写字母转换为大写字母(其它字符不变),并按原顺序将这些字符在屏幕上显示出来(参考程序P36),并显示字符串“The total number is XXXXX”。 2-2、从键盘输入一个0~255之间的十进制数,将其转换为16进制数,并在屏幕上显示变换前后的数据(参考程序P38)。
实验内容(选做)
2-3、在内存中定义5个十六进制带符号数(范围为-128~+127),请将它们按从大到小排序,并将排序前后的数据显示在屏幕上。
三、实验源程序(主要部分)和流程图 2-1、将字符串中小写字母转换为大写字母
data segment
input db 100,100 dup(0)
str1 db 0dh,0ah,'please input string',0dh,0ah,'$' str2 db 0dh,0ah,'The final result:',0dh,0ah,'$' str3 db 0dh,0ah,'The total number is:',0dh,0ah,'$' data ends ;定义数据段
sta segment
db 256 dup(0)
sta ends ;定义堆栈段
code segment
assume cs:code,ds:data,ss:sta start:
mov ax,data mov ds,ax mov ax,sta
mov ss,ax ;初始化各段基址 lea dx,str1 mov ah,09h
int 21h ;显示提示字符串1 lea dx,input
mov ah,0ah
int 21h ;输入要转化的字符串 lea dx,str2 mov ah,09h int 21h
xor cx,cx ;将cx清零
mov cl,input[1] ;由于直接将input[1](即实际字符个数)复制给cx会 ;出现操作数宽度不匹配的错误
mov si,2 l1:mov dl,input[si]
cmp dl,61h ;判断该字符是否为小写字母 jb l2
cmp dl,7ah ja l2
sub dl,20h ;若是,则减20h l2:mov ah,2 ;显示该字符 int 21h
inc si
loop l1 ;继续判断,直到cx=0,即所有字符转化完毕 lea dx,str3 mov ah,09h
int 21h ;显示字符串3 mov dl,input[1]
add dl,30h ;将输入字符个数转换为ASCⅡ码 mov ah,02h
int 21h ;显示出字符个数 mov ah,4ch
int 21h ;程序返回 code ends end start
2-2.十进制数转换为16进制数
data segment right db 1
input db 4,5 dup (0) output db 00h ten db 0ah
string1 db 0dh,0ah,'please input your number(0~255)',0dh,0ah,'$' string2 db 0dh,0ah,'the number you input is(00H~FFH)',0dh,0ah,'$' string3 db 0dh,0ah,'The number you put is(in H):',0dh,0ah,'$' string4 db 0dh,0ah,'The number you put is(in D):',0dh,0ah,'$' data ends
stacks segment db 256 dup(0) stacks ends
code segment
assume cs:code,ds:data,ss:stacks main proc far start:
mov ax,data mov ds,ax
mov ax,stacks
mov ss,ax ; mov output,00H ; mov dx,offset string1 mov ah,09h int 21h
mov dx,offset input ; mov ah,0ah int 21h mov right,1
call change ;
cmp right,0 ; jz error
mov dx,offset string4 mov ah,09h int 21h
mov cl,input[1] mov si,2 loop1: mov dl,input[si] mov ah,02h int 21h inc si
loop loop1 ;
mov dx,offset string3 mov ah,09h int 21h
mov dl,output
初始化各段基址 清零 输入数值 调用转换子程序 判断数值是否满足条件 显示输入的十进制数字 push dx mov cl,4 shr dl,cl call disp pop dx
and dl,0fh call disp jmp go
error:mov dx,offset string2 mov ah,09h int 21h
go:mov ah,4ch int 21h main endp
change proc near ;数值转换子程序 clc ;进位标志清零 xor ax,ax ;寄存器清零 xor bx,bx xor dx,dx
mov cl,input[1] ;将数值位数赋值给cl mov si,2 ;初始化si
again:mov bl,input[si] ;依次将每位数字赋给bl
cmp bl,30h ;判断是否为0~9,不是right置0 jb error1 cmp bl,39h ja error1 sub bl,30h dec cl cmp cl,0 jz over mov ax,1
push cx ;保留此时的cx
loop2:mul ten ;计算位数乘值(1,10,100?) loop loop2 pop cx mul bx
add word ptr[output],ax ;将值累加,且有强制类型转换
jc error ;若进位位为1,说明输入数字超出规定范围 inc si jmp again
正在阅读:
第二次实验二 汇编语言程序设计03-05
中学生责任教育(修改)01-04
我在梦中当了一次小偷小学生三年级优秀作文06-13
悦读串记:读题源文章记四级词汇04-11
园区应急抢修及零星维修工程—招标文件06-09
《伶官传序》公开课教案08-08
投资性房地产会计处理若干问题探讨04-09
实验样品采集运输保存方法01-15
现代都市农业产业园区总体规划方案06-23
- 多层物业服务方案
- (审判实务)习惯法与少数民族地区民间纠纷解决问题(孙 潋)
- 人教版新课标六年级下册语文全册教案
- 词语打卡
- photoshop实习报告
- 钢结构设计原理综合测试2
- 2014年期末练习题
- 高中数学中的逆向思维解题方法探讨
- 名师原创 全国通用2014-2015学年高二寒假作业 政治(一)Word版
- 北航《建筑结构检测鉴定与加固》在线作业三
- XX县卫生监督所工程建设项目可行性研究报告
- 小学四年级观察作文经典评语
- 浅谈110KV变电站电气一次设计-程泉焱(1)
- 安全员考试题库
- 国家电网公司变电运维管理规定(试行)
- 义务教育课程标准稿征求意见提纲
- 教学秘书面试技巧
- 钢结构工程施工组织设计
- 水利工程概论论文
- 09届九年级数学第四次模拟试卷
- 汇编语言
- 程序设计
- 实验