北京化工大学 汇编语言程序设计实验报告.docx
北京化工大学 汇编语言程序设计实验报告 习题1 一实验目的 熟练掌握字符的输入 二实验原理 DOS调用的1号功能 三实验内容 code segment assume cs:code start: mov ah,1;输入并回显 int 21h mov ah,4ch int 21h code ends end start 四结果与分析 结果正确,符合题目要求 五问题讨论: 用2号功能也可以得相同结果 六实验心得 学会了字符的输入功能 七参考文献 汇编课本 八技术支持 韩阳老师 习题2 一实验目的 熟练掌握字符的显示输出 二实验原理 DOS调用的2号功能 三实验内容 code segment assume cs:code start: mov dl,'T' ;调用2号功能输出字符mov ah,2 int 21h mov ah,4ch int 21h code ends end start 四结果与分析 结果正确,符合题目要求 五.问题讨论: 不用数据段直接输出即可 六.实验心得 学会了字符的输出功能 七.参考文献 汇编课本 八.技术支持 韩阳老师 习题3 一.实验目的 熟练掌握字符串的显示输出 二.实验原理 DOS调用的9号功能 三.实验内容 datas segment str db'how are you?$' datas ends codes segment assume cs:codes ,ds:datas start: mov ax,datas ;将数据地址送入ds mov ds,ax lea dx,str mov ah,09 ;调用9号功能显示字符串int 21h mov ah,4ch int 21h codes ends end start 四结果与分析 结果正确,符合题目要求 五.问题讨论: 用数据段直接输出即可 六.实验心得 学会了字符串的输出功能 七.参考文献 汇编课本 八.技术支持 韩阳老师 习题4 一.实验目的 熟练掌握大小写字母的转换和判断语句的调用 二.实验原理 用ASCII码值来判断大小写,用跳转语句来完成相应的操作 三.实验内容 datas segment str db'ERROR$' ;用来显示错误信息 CRLF DB 0AH,0DH,"$" ;用来显示换行和回车 datas ends code segment assume cs:code,ds:datas start: mov ah,01H int 21H push ax ;保存输入的ax值 mov ax,datas mov ds,ax LEA DX,CRLF MOV AH,9 INT 21H pop ax ;取出输入的ax值比较 cmp al,61H ;比最小的小写字母还小 jl lop2 cmp al,7aH ;比最大的小写字母还大 jg lop2 sub al,20H ;小写转大写 mov dl,al mov ah,2 int 21h jmp exit lop2: lea dx,str ;不满足条件显示错误信息mov ah,09 int 21h exit: mov ah,4ch int 21h end start 四结果与分析 结果正确,符合题目要求 五.问题讨论: 有ax先输入用栈保存的问题和最后大小写做完无条件跳转的问题六.实验心得 判断语句的用法 七.参考文献 汇编课本 八.技术支持 韩阳老师 习题5 一.实验目的 熟练掌握循环语句的调用 二.实验原理 用cx中的值来确定循环的次数 code segment assume cs:code start: mov cx,10 ;循环的次数 start_loop: mov dl,'F' ;显示输出 mov ah,2 int 21h mov ah,4ch int 21h code ends end start 四结果与分析 结果正确,符合题目要求 五.问题讨论 Cx 的用法 六.实验心得 循环语句的用法 七.参考文献 汇编课本 八.技术支持 韩阳老师 习题6 一.实验目的 熟练掌握循环语句的调用和判断选择语句的调用 用cx中的值来确定循环的次数和用cmp来确定后续操作三.实验内容 code segment assume cs:code start: mov ah,01H int 21H cmp al,61H ;判断是否是“a” je lop1 cmp al,62H ;判断是否是“b” je lop2 mov ah,4ch int 21h lop1: mov cx,10 ;打印10个“*” start_loop1: mov dl,'*' mov ah,2 int 21h loop start_loop1 mov ah,4ch int 21h lop2: mov cx,10 ;打印10个“$” start_loop2: mov dl,'$' mov ah,2 int 21h 四结果与分析 结果正确,符合题目要求 五.问题讨论 判断选择语句的用法 六.实验心得 判断选择语句的用法 七.参考文献 汇编课本 八.技术支持 韩阳老师 习题7 一.实验目的 熟练掌握串中大小写的判断和转换 二.实验原理 用cmp进行大小写判断,再用加减做处理 三.实验内容 code segment assume cs:code start: mess1 db 'holle world' ;定义输入的串count equ $-mess1 mov cx,count mov si,-1 start_loop: inc si sub mess1si,20H ;大小写转换mov dl,mess1si mov ah,02H int 21H loop start_loop mov ah,4ch int 21h code ends end start 四结果与分析 结果正确,符合题目要求 五.问题讨论 无 六.实验心得 串中各个字符的操作 七.参考文献 汇编课本 八.技术支持 韩阳老师 习题8 一.实验目的 综合运用字符串输出,判断,大小写转换等功能 二.实验原理 前几次要点的综合运用 三.实验内容 datas segment ;显示要输出的信息mess1 db 'Please input one character:$' mess2 db 'error!$' datas ends code segment assume cs:code,ds:datas start: mov cx,3 mov ax,datas mov ds,ax lea dx,mess1 ;显示输入提示 mov ah,09H int 21h mov ah,07H int 21h cmp al,61H ;判断是否为小写字母 jl lop2 cmp al,7BH jge lop2 dec al mov dl,al start_loop: mov ah,02H ;满足就显示3个字母 int 21h inc dl loop start_loop jmp next ;程序运行完退出 lop2: mov ax,datas mov ds,ax lea dx,mess2 ;不满足显示错误信息mov ah,09H int 21h mov ah,4ch int 21h code ends end start 四结果与分析 结果正确,符合题目要求 五.问题讨论 无 六.实验心得 对前面的各种操作掌握的更熟悉了 七.参考文献 汇编课本 八.技术支持 韩阳老师 习题9 一.实验目的 对数字的判断和处理 二.实验原理 用ASCII码来判断数字 三.实验内容 datas segment mess1 db 100 dup(?) ;定义存储的区域 datas ends code segment assume cs:code,ds:datas mov si,-1 mov cx,100 start_loop: mov ah,01H int 21H cmp al,0DH ;以换行和回车作为结束的标志je next cmp al,0AH je next cmp al,'0' je start_loop ;判断是否为数字 cmp al,'1' je start_loop cmp al,'2' je start_loop cmp al,'3' je start_loop cmp al,'4' je start_loop cmp al,'5' je start_loop cmp al,'6' je start_loop cmp al,'7' je start_loop cmp al,'8' je start_loop cmp al,'9' je start_loop inc si mov mess1si,al ;只记录数字 loop start_loop next: mov dl,0AH mov ah,02H int 21h inc si mov cx,si mov si,-1 start_loop2: inc si mov dl,mess1si ;显示输出没有数字的串 mov ah,02H 四结果与分析 结果正确,符合题目要求 五.问题讨论 无 六.实验心得 对前面的各种操作掌握的更熟悉了 七.参考文献 汇编课本 八.技术支持 韩阳老师 习题10 一.实验目的 熟练掌握字符串的匹配 二.实验原理 一个一个字符的比较 三.实验内容 datas segment ;显示提示信息 mess1 db 'Please input the password:$' mess2 db 'Password error!$' mess3 db '0000000000000000000000' mess4 db '123456' ;这就是密码,不要告诉别人哦 mess5 db 'Welcome to use!$' count db 3 datas ends