汇编实验报告6---实战编程
实验6 实践课程中的程序
(1) 将课程中所有讲解过的程序上机调试,用DEBUG跟踪其执行过程,并在过程中进一步理解所讲内容。
(2) 编程:完成问题中的程序。
问题:编程,将datasg段中的每个单词的前四个字母改为大写字母:
;---------------------------
;pro9.asm
;---------------------------
;AUTHOR:没有风
;DATE:2007/11/18
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;功能:将4个单词的前4个字母转换为大写字母
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;
;语言:8086,编译工具:masm5.00
;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
assume cs:codesg,ss:stacksg,ds:datasg
stacksg segment
dw 0,0,0,0,0,0,0,0
stacksg ends
datasg segment
str0 db '1. display '
str1 db '2. brows '
str2 db '3. replace '
str3 db '4. modify '
datasg ends
codesg segment
start: mov ax,stacksg
mov ss,ax
mov sp,16
mov ax,datasg
mov ds,ax
mov bx,0
mov cx,4
s0: push cx
mov si,0
mov cx,4
s: mov al,[bx+3+si]
and al,11011111b
mov [bx+3+si],al
inc si
loop s
add bx,16
pop cx
loop s0
mov ax,4c00h
int 21h
codesg ends
end start
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;总结:经过实战编写上面的程序,我
;1。学会了如何使用二重循环
;2。学会了如何定义并使用二维数组
;3。学会了如何使用行指针和列指针来遍历所要遍历的数组元素
;4。更深入的了解了如何使用一个寄存器来作为二重循环的计算器
;5。更深入的懂得了堆栈的原理及功能(用来暂存数据)
;6。学会了使用MOV指令逐字节的读取数组的元素来对数组赋值
;7。希望在上面的程序里加入三个功能:(1)把数组转换4个字母修改为全部字母(2)在转换字母前打印菜单(3)在转换字母后打印菜单
;8。希望日后往这个程序里添加里一些具体的有实际意义的功能,比如将它修改为一个学生管理系统,可以存储一定数量学生数据,并可以
; 将数据保存到硬盘中,以及从硬盘中读取这些数据,同时可以对这些数据进行增加、修改、删除等操作。
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
