返回介绍

第 7 章:更灵活的定位内存地址的方法

发布于 2024-10-04 13:37:13 字数 1888 浏览 0 评论 0 收藏 0

实验6

问题 7.9:编程,将 datasg 段中每个单词的前 4 个字母改为大写字母。

assume cs:code, ss:stack, ds:data

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

stack segment
    dw 16 dup (0)
stack ends

code segment
start:
    mov ax,data
    mov ds,ax       ; ds points to data seg

    mov bx,0

    mov ax,stack
    mov ss,ax
    mov sp,16       ; sp points to stack top

    mov cx,4        ; outer loop 4 rows

sout:
    push cx         ; push cx (outer loop counter) to stack
    mov si,0        ; offset of each char

    mov cx,4        ; inner loop 4 cols
sin:
    mov al,[bx+si+3]    ; first char of string is at pos 3
    and al,11011111b    ; upper char
    mov [bx+si+3],al    ; overwrite ds
    inc si
    loop sin

    add bx,16       ; next string
    pop cx          ; restore cx (outer loop counter)
    loop sout

    mov ax,4c00h
    int 21h

code ends

end start

程序执行完后,内存中的情况

参考链接

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。
列表为空,暂无数据
    我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
    原文