欢迎来到 嗅灵易学

零基础也能上手的脚本技术课,一对一答疑带你入门

汇编实验报告6---实战编程

汇编实验报告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。希望日后往这个程序里添加里一些具体的有实际意义的功能,比如将它修改为一个学生管理系统,可以存储一定数量学生数据,并可以
;  将数据保存到硬盘中,以及从硬盘中读取这些数据,同时可以对这些数据进行增加、修改、删除等操作。
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;

注意:上传附件及图片大小不得大于30M。

⚠️ 版权声明:
本博客所有内容(含教程、源码、工具)仅供个人技术学习与研究交流使用,严禁商用、倒卖、二次分发及非法用途
未经作者书面授权,任何组织或个人不得转载、复制或用于其他平台,违者将追究相关责任。

0 0 0 举报
复制成功