当前位置:首页 > 安工大汇编程序设计实验报告
MOV DS,AX MOV ES,AX
mov si,offset source mov di,offset target mov cx,256 rep movsb MOV AH,4CH INT 21H
CODES ENDS END START
第二部分地址块减一方法移动块的源程序: DATAS SEGMENT
source db 256 dup(055h) target db 256 dup(0aah) DATAS ENDS
STACKS SEGMENT STACKS ENDS CODES SEGMENT
ASSUME CS:CODES,DS:DATAS,ES:DATAS,SS:STACKS START:
MOV AX,DATAS MOV DS,AX MOV ES,AX
mov si,offset source add si,255
mov di,offset target mov cx,256 next:mov al,[si] mov [di],al dec si inc di loop next mov ah,0 MOV AH,4CH INT 21H CODES ENDS END START 执行结果:
- 13 -
实验四 将键盘输入的小写字母用大写字母显示出来
一、 程序说明
本程序用来将小写字母转变为大写,并在屏幕上显示出来。先利用DOS功能调用INT21H的1号功能从键盘输入字符,然后判断输入的是否是小写字母,若不是小写字母,则显示输入出错,重新输入。若输入的是小写字母,则通过将其减去20h,从而变为大写字母。在通过DOS功能调用INT21H的2号功能显示出来。若输入的是Enter键,则结束程序。
二、 调试说明
调试程序可以在debug中进行,基本步骤和前面的实验大致相同,在软件Masm 集成实验环境 2008.4中编辑程序,则可以直接点击程序上的调试按钮,即可进行调试。调试时可通过-t指令来逐步运行程序,观察相关内容变化,来调试程序。
三:源程序代码和执行结果: DATAS SEGMENT
string1 db ' this not is a zimu!Please input between a to z!',0ah,0dh,'$' string2 db ' $' DATAS ENDS
CODES SEGMENT
ASSUME CS:CODES,DS:DATAS START:
MOV AX,DATAS MOV DS,AX L0:mov ah,1
- 14 -
int 21h cmp al,0dh jz exit cmp al,'a' jae L1 jb L3 L1: cmp al,'z' jna L2 ja L3
L2:sub al,20h mov cl,al lea dx,string2 mov ah,9 int 21h
mov dl,0 mov dl,cl mov ah,2 int 21h mov dl,0ah mov ah,2 int 21h mov dl,0dh mov ah,2 int 21h jmp L0
L3: lea dx,string1 mov ah,9 int 21h jmp L0
exit: MOV AH,4CH int 21H codes ends end start 执行结果
- 15 -
实验五:循环程序设计
一、 程序说明
第一个程序是用来显示AL寄存器中的两位十六进位制数,通过DOS功能调用INT21H的2号功能显示出来。
第二个程序是用来判别键盘上输入的字符:若是1-9字符,则显示之;若为A-Z或a-z字符,均显示“c”;若是回车字符
调试程序可以在debug中进行,基本步骤和前面的实验大致相同,在软件Masm 集成实验环境 2008.4中编辑程序,则可以直接点击程序上的调试按钮,即可进行调试。调试时可通过-t指令来逐步运行程序,观察程序是如何进行循环的。修改AL中的内容,可以通过-r指令来实现,如修改ax 中的内容,通过指令-r ax来实现,如下图所示:
- 16 -
共分享92篇相关文档