实训汇编语言设计——接受一个小写字母,找出前个字符和后续字符

练习实训

接受一个小写字母,找出前个字符和后续字符:

data segment

a db '输入一个字符',0dh,0ah,'$'

c db '下一个字符',0dh,0ah,'$'

data ends

cseg segment

assume cs:cseg,ds:data

start:

mov  ax,data

mov ds,ax

mov dx,offset a

      mov ah,9h

      int 21h

mov ah,1

int 21h

mov dl,al

dec dl

mov cx,3

L1:

mov ah,2

int 21h

inc dl

loop L1

exit:

mov ah,4ch

int 21h

cseg ends

end start

输入:d

输出:dcde
 

转载于:https://www.cnblogs.com/javabluesky/archive/2007/12/14/2211935.html

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
好的,下面是汇编程序的代码: ```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 环境下的汇编程序,如果需要在其他环境下运行,可能需要进行修改。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值