鱼C论坛

 找回密码
 立即注册
查看: 3614|回复: 2

[已解决]请各位看看这道汇编题怎么做

[复制链接]
发表于 2020-10-29 21:26:50 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
请在数据段中定义以下2个数组:
s db 100 dup(0)
t db 100 dup (0)
代码段中实现以下功能:
输入- -行字符(敲回车结束输入)并保存到数组s中,
其中回车转化成ASCI I码00h保存到数组中,
再把s中的每个元素逐个取出判断:
(1)若元素为小写字母则把它转化成大写并保存到数组t中;
(2)若元素为空格则丢弃该元素,不要保存到t中;
(3)若元素为其它字符则原样保存到t中;
最后输出t中的全部元素再输出回车换行。
提示:
(1)可以循环调用int 21h的01h功能实现一行字符的输入;
(2)可以循环调用int 21h的02h功能实现一行字符的输出;
(3) 数组s和t的下标可以分别用寄存器si、di表示;



求完整代码QAQ、
跪谢各位


最佳答案
2020-10-30 15:32:05
本帖最后由 xieglt 于 2020-10-30 15:38 编辑
assume cs:code

data segment
        s db 100 dup(0)
        t db 100 dup(0)
data ends

code segment
start:
        mov ax,data
        mov ds,ax
        mov es,ax
        lea di,s
        mov cx,99
_input:
        mov ah,01
        int 21h
        ;输入回车结束
        cmp al,13
        je  _is_Enter
        stosb
        loop _input
_is_Enter:
        xor ax,ax
        stosb
        dec cx

        ;统计输入字符数,设置为循环计数
        sub cx,99
        not cx

        lea si,s
        lea di,t
_s2t:
        ;从 s 取一个字符
        lodsb
        ;是否空格,是则跳转
        cmp al,32
        je  _is_space
        ;是否 < 'a',是则跳转
        cmp al,'a'
        jl  _isnot_lettle
        ;是否 > 'z',是则跳转
        cmp al,'z'
        jg _isnot_lettle
        ;是小写字母减32变成大写字母
        sub al,32
_isnot_lettle:
        ;保存字符进t
        stosb
        ;忽略空格语句标号
_is_space:
    ;循环
        loop _s2t
        
        ;输出换行回车
        mov dl,10
        mov ah,2
        int 21h
        mov dl,13
        mov ah,2
        int 21h
        
        ;循环输出t中的字符,遇到0结束
        lea si,t
_output:
        lodsb
        test al,al
        je _over
        mov dl,al
        mov ah,2
        int 21h
        jmp _output
_over:

        ;输出换行回车
        mov dl,10
        mov ah,2
        int 21h
        mov dl,13
        mov ah,2
        int 21h

        mov ax,4c00h
        int 21h
code ends
end start
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2020-10-30 15:32:05 | 显示全部楼层    本楼为最佳答案   
此帖仅作者可见
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com

使用道具 举报

 楼主| 发表于 2020-11-5 18:55:01 | 显示全部楼层
此帖仅作者可见
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2024-11-23 12:06

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表