汇编语言: 编写程序,从键盘接收一个小写字母,然后找出它的前导字符和后续字符,

编写程序,从键盘接收一个小写字母,然后找出它的前导字符和后续字符,再按顺序 显示这三个字符。

data segment
n db 0
data ends

code segment
    assume cs:code,ds:data
 p  proc far
    mov ax,data
    mov ds,ax   

    mov ah,01h
    int 21h

    cmp al,'a'
    jb input
    je behind

    cmp al,'z'
    ja input
    je blow

    jmp normal 

input:  xchg dl,al
    mov ah,02h
    int 21h
    jmp endd

normal :    xchg dl,al
    dec dl
    mov ah,02h
    int 21h
    inc dl
    mov ah,02h
    int 21h
    inc dl
    mov ah,02h
    int 21h
    jmp endd

behind:    xchg dl,al
            mov ah,02h
    int 21h

    inc dl
    mov ah,02h
    int 21h
    jmp endd

blow:   xchg dl,al
    dec dl
    mov ah,02h
    int 21h

    inc dl  
    mov ah,02h
    int 21h
    jmp endd

endd:
    mov ah,4ch
    int 21h

    p endp
    code ends
    end p
  • 5
    点赞
  • 35
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
好的,下面是汇编程序的代码: ```assembly ; 段定义 assume cs:code code segment ; 程序入口 start: ; 初始化 mov ah, 00h ; 设置中断号 int 16h ; 从键盘读取一个字符 mov bl, al ; 存储输入的字符 ; 转换小写字母为大写字母 cmp bl, 'a' jb end_prog cmp bl, 'z' ja end_prog sub bl, 20h ; 转换为大写字母 ; 显示后续字符 mov ah, 02h ; 设置中断号 mov dl, bl ; 存储字符 add dl, 01h ; 找到后续字符 int 21h ; 显示字符 ; 程序结束 end_prog: mov ah, 4ch ; 设置中断号 int 21h ; 程序结束 code ends end start ``` 注释说明: 1. `mov ah, 00h`:设置中断号为 00h,表示从键盘读取一个字符。 2. `int 16h`:调用 16h 中断,从键盘读取一个字符,存储在 AL 寄存器中。 3. `mov bl, al`:将输入的字符存储在 BL 寄存器中。 4. `cmp bl, 'a'`:比较 BL 寄存器中的字符是否小于 'a'。 5. `jb end_prog`:如果 BL 寄存器中的字符小于 'a',则直接结束程序。 6. `cmp bl, 'z'`:比较 BL 寄存器中的字符是否大于 'z'。 7. `ja end_prog`:如果 BL 寄存器中的字符大于 'z',则直接结束程序。 8. `sub bl, 20h`:将小写字母转换为大写字母。 9. `mov ah, 02h`:设置中断号为 02h,表示显示字符。 10. `mov dl, bl`:将 BL 寄存器中的字符存储在 DL 寄存器中。 11. `add dl, 01h`:将 DL 寄存器中的字符加 1,得到后续字符。 12. `int 21h`:调用 21h 中断,显示字符。 13. `mov ah, 4ch`:设置中断号为 4ch,表示程序结束。 14. `int 21h`:调用 21h 中断,结束程序。 注意:这段代码是基于 DOS 环境下的汇编程序,如果需要在其他环境下运行,可能需要进行修改。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值