北工大汇编题——分支程序设计

本文介绍了如何设计一个简单的程序,接收用户输入的0-8编号,从预定义的数据段中提取对应编号的信息并显示在屏幕上,支持错误处理和退出功能。使用INT21H中断服务进行输入输出操作。

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

题目要求

信息检素程序设计:在数据区,有9个不同的信息,编号 0-8,每个信息包括20 个字符。从键盘接收 0-8 之间的一个编号,然后再屏幕上显示出相应编号的信息内容,按“q”键退出

在这里插入图片描述

完整代码

DATAS SEGMENT
    n0 db '00000000000000000000'
    n1 db '11111111111111111111'
    n2 db '22222222222222222222'
    n3 db '33333333333333333333'
    n4 db '44444444444444444444'
    n5 db '55555555555555555555'
    n6 db '66666666666666666666'
    n7 db '77777777777777777777'
    n8 db '88888888888888888888'
    Errmsg DB 'please input 0-8 q:exit $'
DATAS ENDS

CODES SEGMENT
    ASSUME CS:CODES, DS:DATAS
START:
    MOV AX, DATAS
    MOV DS, AX

LOP:
    MOV AH, 1 
    INT 21H

    CMP AL, 'q'
    JZ exit

    CMP AL, '0' 
    JB ERR
    CMP AL, '8'
    JA ERR

    SUB AL, 30H ;'0':30
	MOV DH, 14H
    MUL DH
    MOV BX, AX 

    CALL DISP
    JMP LOP

ERR:
    MOV DL, 0DH ;回车换行
    MOV AH, 02
    INT 21H
    MOV DL, 0AH
    MOV AH, 02
    INT 21H
    
    MOV DX, OFFSET Errmsg
    MOV AH, 09
    INT 21H
    
    MOV DL, 0DH ;回车换行
    MOV AH, 02
    INT 21H
    MOV DL, 0AH
    MOV AH, 02
    INT 21H
    
    JMP LOP



DISP PROC NEAR
    MOV DL, 0DH ;回车换行
    MOV AH, 02
    INT 21H
    MOV DL, 0AH
    MOV AH, 02
    INT 21H
    
    MOV CX, 14H

LOP1:
    MOV DL, [BX] 
    MOV AH, 02H
    INT 21H
    
    INC BX ;
    LOOP LOP1

    MOV DL, 0DH ;回车换行
    MOV AH, 02
    INT 21H
    MOV DL, 0AH
    MOV AH, 02
    INT 21H
    RET

DISP ENDP

exit:
    MOV AH, 4CH
    INT 21 

CODES ENDS
END START





评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值