微机原理汇编代码

本文展示了一个使用汇编语言的简单程序实例,程序主要功能是将字符转换为十六进制显示,并通过INT 21H中断进行屏幕输出。此外,程序还包括了键盘输入检测,当检测到键盘输入时,程序将终止。

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

STACK1 SEGMENT STACK
   DW 256 DUP(?)
STACK1 ENDS
DATA SEGMENT             
   MES DB 'su tie sen',0AH,0DH,0AH,0DH,'$'
   MES1 DB 'Show a as hex:',0AH,0DH,'$'
   SD DB 'a'
DATA ENDS
CODE SEGMENT            
   ASSUME CS:CODE,DS:DATA
START: MOV AX,DATA  
   MOV DS,AX
   MOV DX,OFFSET MES     
   MOV AH,09H              
   INT 21H
   MOV DX,OFFSET MES1      
   MOV AH,09H
   INT 21H
   MOV SI,OFFSET SD
   MOV AL,DS:[SI]         
   AND AL,0F0H            
   MOV CL,4
   SHR AL,CL
   CMP AL,0AH             
   JB C2
   ADD AL,07H            
C2: ADD AL,30H              
   MOV DL,AL
   MOV AH,02H             
   INT 21H
   MOV AL,DS:[SI] 
   AND AL,0FH              
   CMP AL,0AH
   JB C3
   ADD AL,07H
C3: ADD AL,30H
   MOV DL,AL             
   MOV AH,02H
   INT 21H
KEY: MOV AH,1               
   INT 16H                  
   JZ KEY
   MOV AX,4C00H           
   INT 21H
CODE ENDS
END START

编写如下程序,并在机器上调试成功。程序采用菜单式选择,可以接收用户从键盘输入的五个命令(1-5),各命令功能分别为: (1)按下“1”键,完成字符串小写字母变成大写字母。 用户输入一由英文大小写字母或数字0-9组成的字符串(以回车结束),程序逐个检查字符串中各字符,将原串中小写字母变成大写字母,其他字符不变,并在屏幕上显示。用户按任一键,重做,按ESC键,返回主菜单。 (2)按下“2”键,完成找最大值(二选一)。 a.接收用户输入的可显示字符串(以回车结束),程序将其中ASCII码值最大的字符显示出来; b.接收用户输入若干个无符号8位数(以空格或逗号为分隔符,以回车结束),程序将其中最大的数显示出来。用户按任一键,重做,按ESC键,返回主菜单。 (3)按下“3”键,完成排序(二选一)。 a.接收用户输入的可显示字符串,以回车结束。程序按ASCII码值大小由大到小排序并输出显示; b.接收用户输入若干个有符号8位数(以空格或逗号为分隔符,以回车结束),程序将其中最大的数显示出来。用户按任一键,重做,按ESC键,返回主菜单。 (4)按下“4”键,显示时间。 首先提示用户对时,即用户输入时、分、秒(以空格或逗号为分隔符,以回车结束),然后,在屏幕上不断显示时间,格式为: XX(时): XX(分): XX(秒) 最好定点显示。用户按任一键,重新对时,按ESC键,返回主菜单。 (5)按下“5”键,结束程序运行,返回系统提示符。 上述题目代码,之前在网上找到过类似的可总是出问题,编译器出问题,代码运行出问题,这是完全测试过的,应该没有问题
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值