ICode9

精准搜索请尝试: 精确搜索
首页 > 编程语言> 文章详细

汇编语言(第3版,王爽著):实验6 实践课程中的程序

2022-05-26 13:00:08  阅读:211  来源: 互联网

标签:课程 汇编语言 db mov si cx ax bx 王爽


实验6 实践课程中的程序

(1)将课程中所有讲解过的程序上机调试,用 Debug 跟踪其执行过程,并在过程中进一步理解所讲内容。

(略)

(2)编程,完成问题 7.9 中的程序。

  • 完成的程序如下:
assume cs:codesg, ds:datasg, ss:stacksg

stacksg segment
    dw 0, 0, 0, 0, 0, 0, 0, 0
stacksg ends

datasg segment
    db '1. display      '
    db '2. brows        '
    db '3. replace      '
    db '4. modify       '
datasg ends

codesg segment
start:  mov ax, stacksg
        mov ss, ax
        mov sp, 10H

        mov ax, datasg
        mov ds, ax

        mov bx, 0           ; 每一个数组(即每一行的地址)
        mov cx, 4           ; cx 设置外层循环的次数 -- 数据段 中有 4 行字符(即 4 个数组)
    s:  push cx             ; 将外层循环 cx 中的值暂存到 栈 中
        mov si, 0           ; 每一行中元素的下标,相当于数组的下标
        mov cx, 4           ; cx 设置内层循环的次数

    s0: mov al, [bx+3+si]
        and al, 11011111B   ; 将 al 中的 ASCII 码的第 5 位置为 0,小写字母变为大写字母
        mov [bx+3+si], al   ; 将转变后的 ASCII 码写回原单元
        inc si              ; si 加 1,指向下一个字母
        loop s0             ; 内层循环的 loop 指令将 cx 中的计数值减 1

        add bx, 10H         ; 将 bx 指向下一个数组
        pop cx              ; 从栈顶弹出原 cx 的值,恢复 cx
        loop s              ; 外层循环的 loop 指令将 cx 中的计数值减 1

        mov ax, 4c00H
        int 21h
codesg ends

end start
  • 调试过程:
    实验6 调试过程

标签:课程,汇编语言,db,mov,si,cx,ax,bx,王爽
来源: https://www.cnblogs.com/wanghuizhao/p/16313080.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有