INT 21H终端部分功能号

本文详细介绍了DOS系统调用INT 21H中与终端交互的相关功能号,包括输入输出、屏幕控制等,是学习DOS编程的基础知识。
摘要由CSDN通过智能技术生成
	;程序名: A1.asm
	;功  能: 1. 输入一个字符,显示输出, 并转化为二进制码再输出
	;		 2. 输入一个字符串,
MLENGTH = 128
DATA SEGMENT
	MESS1	DB 'INPUT KEY:$'
	MESS0	DB 'PLEASE INPUT:$'
	MESS2	DB 'INPUT STRING:$'
	MESS3	DB 'STRING :$'
	BUFF	DB	MLENGTH
			DB ?
			DB MLENGTH DUP (0) 
DATA ENDS
CODE SEGMENT 
	 ASSUME CS:CODE,  DS:DATA
START:  MOV 	AX,DATA
		MOV 	DS,AX
		MOV		DX,OFFSET MESS0
	    CALL	DISMESS
		MOV 	AH,
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
汇编语言是一种低级语言,可以直接控制计算机的硬件进行编程。在汇编实验,我们可以编写一个程序,要求用户输入一个月份,然后在终端上显示出该月份的名称。 首先,我们需要使用汇编语言的输入指令来读取用户输入的月份,然后将其保存到一个寄存器。接下来,我们可以使用条件分支指令根据用户输入的月份来选择对应的月份名称。 下面是一个简单的示例程序: ```assembly .model small .stack 100h .data prompt db "请输入一个月份(1-12):$" jan db "一月$" feb db "二月$" mar db "三月$" ; ... 其他月份名称依次类推 ... .code main proc mov ax, @data mov ds, ax mov ah, 9 ; 显示提示信息 mov dx, offset prompt int 21h mov ah, 1 ; 读取用户输入的月份 int 21h sub al, 30h ; 将ASCII码转换为数字 cmp al, 1 je jan_name ; 用户输入月份为1则跳转至jan_name cmp al, 2 je feb_name cmp al, 3 je mar_name ; ... 其他月份判断语句依次类推 ... jan_name: mov ah, 9 ; 显示一月 mov dx, offset jan int 21h jmp exit feb_name: mov ah, 9 ; 显示二月 mov dx, offset feb int 21h jmp exit mar_name: mov ah, 9 ; 显示三月 mov dx, offset mar int 21h jmp exit ; ... 其他月份显示语句依次类推 ... exit: mov ah, 4Ch ; 程序结束 mov al, 0 int 21h main endp end main ``` 以上程序使用了DOS断服务例程(Interrupt Service Routine),具体说明如下: - `mov ah, 9`:设置显示字符串的功能,9表示显示字符串。 - `mov dx, offset prompt`:将提示信息的地址加载到`dx`寄存器。 - `int 21h`:调用DOS断`int 21h`,显示字符串。 - `mov ah, 1`:设置从标准输入读取一个字符的功能,1表示读取字符。 - `int 21h`:调用DOS断`int 21h`,读取用户输入的月份。 - `sub al, 30h`:将ASCII码转换为数字,因为'1'的ASCII码为49,所以需要将其减去'0'的ASCII码(30h)。 接下来,通过使用条件分支指令`cmp`和`je`判断用户输入的月份,并使用`mov dx, offset month_name`和`int 21h`显示对应的月份名称。最后,通过`jmp exit`跳转到程序结束的部分。 以上是一个简单的汇编程序,根据用户键入的月份数在终端上显示对应的月份名称。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值