80x86汇编语言:输入字符串、转换、输出

本文介绍了一段使用汇编语言编写的程序,该程序能够实现从键盘输入字符并实时转换数字为二进制形式,同时将输入的字母转换为另一种大小写形式,并统计大写字母的数量。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >


用汇编语言编一段程序:用键盘输入一段字符,使输入的数字以二进制数显示,

输入的大写字母显示小写,输入小写字母显示大写,并统计出期中大写字母的数量。


如输入:123ASDFxcvb$PO0

将显示:000100100011asdfXCVB$po0000  6(大写字母的数量)


可不输入除字母和数字以外的符号,比如$。


题目链接:http://zhidao.baidu.com/question/488251450808880892.html


做而论道编写的程序如下:


;========================================================


ASSUME  CS:CC, DS:QQ


QQ   SEGMENT

    STR   DB  100, ?, 100 DUP('$')

    MSG1  DB  'Input the string : ', 13, 10, '$'

    MSG2  DB  13, 10, 'OUT  is : ', 13, 10, 36


    N_BIG  DW  ?


QQ   ENDS


CC   SEGMENT


START:

    MOV   AX, QQ

    MOV   DS, AX

;--------------------------------------------------    

    LEA   DX, MSG1    ;显示“INPUT THE STRING:”

    MOV   AH, 9

    INT   21H


    LEA   DX, STR

    MOV   AH, 0AH     ;输入字符串

    INT   21H


    LEA   DX, MSG2

    MOV   AH, 9

    INT   21H


    MOV   CL, STR + 1

    MOV   CH, 0

    CMP   CX, 0

    JNZ   CAL

    JMP   EXIT

CAL:

    MOV   BX, 0

LOP:

    MOV   DL, STR[BX + 2]

    CMP   DL, '0'

    JB    NEXT1

    CMP   DL, '9'

    JA    NEXT1

    CALL  O_BIN

    JMP   NEXT

NEXT1:

    CMP   DL, 'A'

    JB    NEXT2

    CMP   DL, 'Z'

    JA    NEXT2

    INC   N_BIG

    XOR   DL, 32

    JMP   O_CHR

NEXT2:

    CMP   DL, 'a'

    JB    NEXT

    CMP   DL, 'z'

    JA    NEXT

    XOR   DL, 32

O_CHR:

    MOV   AH, 2

    INT   21H

NEXT:

    INC   BX

    LOOP  LOP


    MOV   DL, ' '

    MOV   AH, 2

    INT   21H


O_NUM:

    MOV   AX, N_BIG

    MOV   BL, 10

    DIV   BL

    MOV   BX, AX

    MOV   AH, 2

    CMP   BL, 0

    JZ    D_2

    MOV   DL, BL

    ADD   DL, '0'

    INT   21H

D_2:

    MOV   DL, BH

    ADD   DL, '0'

    INT   21H


;--------------------------------------------------    

EXIT:

    MOV   AH, 4CH

    INT   21H

;-----------------------------

O_BIN:

    PUSH  BX

    PUSH  CX

    MOV   AH, 2

    MOV   BL, DL

    MOV   CX, 4

O_L:

    MOV   DL, '0'

    TEST  BL, 8

    JZ    O_N

    INC   DL 

O_N:

    INT   21H

    SHL   BL, 1

    LOOP  O_L

    POP   CX

    POP   BX

    RET

;-----------------------------

CC   ENDS

    END   START


;========================================================


本程序经过编译、链接,执行的效果完全符合题目要求。


评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值