汇编语言——输入4位以内的16进制数,存进BX

news2024/11/20 7:28:01

在这里插入图片描述

data segment
data ends
stack segment stack
	dw 100 dup (?)
	top label word
stack ends
code segment
	assume cs:code,ds:data,ss:stack
main proc far
	mov ax,data
	mov ds,ax
	mov ax,stack
	mov ss,ax
	lea sp,top
	
	mov bx,0
	mov cx,4			;最多输入4位16进制数
L1:	
	mov ah,7			;用7号功能输入,不回显
	int 21h
	
	cmp al,0dh			;回车,跳转到输出bx,如果没有输入就回车,bx=0
	je exit
	cmp al,30h			;输入的字符小于30h,重新输入
	jb L1
	cmp al,39h			;输入的字符大于39h,到L2继续判断合法性
	ja L2
	
	mov dl,al			;0-9合法输入,回显
	mov ah,2
	int 21h
	
	sub dl,30h			;输入的0-9要减30h才能变成ASCII码0-9
	
	push cx				;保护cx
	mov cl,4
	rol bx,cl			;bx左移4位
	
	add bl,dl			;bx低八位bl加上dl
	
	pop cx				;还原cx
	dec cx
	cmp cx,0			;cx=0跳转到输出bx,否则继续输入
	je exit				
	jmp L1

L2:
	cmp al,41h			;输入的字符小于41h(A),重新输入
	jb L1
	cmp al,46h			;输入的字符大于46h(F),到L3继续判断合法性
	ja L3
	
	mov dl,al			;A-F合法输入,回显
	mov ah,2
	int 21h
	
	sub dl,37h			;输入的A-F要减37h才能变成ASCII码10-15
	push cx
	mov cl,4
	
	shl bx,cl
	add bl,dl
	
	pop cx
	dec cx
	cmp cx,0			;cx=0跳转到输出bx,否则继续输入
	je exit
	jmp L1
	
L3:
	cmp al,61h			;输入的字符小于61h(a),重新输入
	jb L1
	cmp al,66h			;输入的字符大于66h(f),重新输入
	ja L1
	
	mov dl,al			;a-f合法输入,回显
	mov ah,2
	int 21h
	
	sub dl,57h			;输入的a-f要减57h才能变成ASCII码10-15
	push cx
	mov cl,4
	
	shl bx,cl
	add bl,dl
	
	pop cx
	dec cx
	cmp cx,0			;cx=0跳转到输出bx,否则继续输入
	je exit
	jmp L1

;以16进制输出bx
exit:
	;回车换行
	mov dl,0dh
	mov ah,2
	int 21h
		
	mov dl,0ah
	mov ah,2
	int 21h
	
	mov cx,4			;输出4位16进制数
	
L4:
	push cx
	mov cl,4
	rol bx,cl
	
	mov dl,bl
	and dl,0fh			;屏蔽高4位	
	
	cmp dl,9
	ja L5
	add dl,30h			;0-9
	jmp print
	
L5:
	add dl,37h			;A-F
	
print:
	mov ah,2
	int 21h
	pop cx
	loop L4
	
	mov ah,4ch
	int 21h
	
main endp
code ends
	end main
	

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1609856.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

进程互斥的实现

目录 一. 进程同步二. 进程互斥三. 进程互斥软件实现四. 进程互斥硬件实现4.1 中断屏蔽方法4.2 test and set 指令4.3 Swap 指令 五. 互斥锁六. 信号量机制6.1 整型信号量6.2 记录型信号量6.3 信号量机制实现进程互斥6.4 信号量机制实现进程同步6.5 信号量机制实现进程前驱关系…

物流单打印模板怎么设置,物流发货单打印软件操作教程

物流单打印模板怎么设置,物流发货单打印软件操作教程 一、前言 以下软件操作教程以,佳易王物流货运单管理系统软件为例说明 软件文件下载可以点击最下方官网卡片——软件下载——试用版软件下载 佳易王物流单管理系统软件直接在空白单上打印可以在卷纸…

2024年短剧视频如何下载

下载工具 2024年是短剧继续增长的年代 本文以短剧小程序为例子,工具(下载高手)我已经打包好了 1.首先解压我给大家准备的压缩包 2.把微信程序退出,一定要是电脑右下角右键然后退出微信,直接关掉微信不算退出 3.然后打开下载高手,第一次运行…

Java作业6-Java类的基本概念三

编程1 import java.util.*;abstract class Rodent//抽象类 {public abstract String findFood();//抽象方法public abstract String chewFood(); } class Mouse extends Rodent {public String findFood(){ return "大米"; }public String chewFood(){ return "…

Js-JavaScript-三种弹出提示框-alert-confirm-prompt-ai插件

文章目录 1.alert-提示框2.confirm-确认框3.prompt-输入框4.总结 1.alert-提示框 alert (message: string , title: string , errorIcon: Boolean ) Core JavaScript Classes Displays an alert box message: Data Type: string The text to display title (optional): Data Ty…

React-性能优化的手段

​🌈个人主页:前端青山 🔥系列专栏:React篇 🔖人终将被年少不可得之物困其一生 依旧青山,本期给大家带来React篇专栏内容:React-性能优化的手段 目录 React 性能优化的手段有哪些? 一、是什么 二、如何做…

Docker了解及命令行使用

一、了解Docker 1、什么是Docker Docker为应用程序的开发、发布和运行提供了一个基于容器的标准化平台。容器运行的是应用程序,Docker平台用来管理容器的整个生命周期 2、虚拟机与容器 2.1、虚拟机是什么 虚拟机(Virtual Machine)是一种软…

大语言模型攻击

实验: 一.环境部署 1.模型部署 vicuna-13b-v1.3 vicuna-7b-v1.3 LLaMA-2-7B-Chat 部署代码 二.使用 GCG 攻击 LLaMA-2 的示例 使用模型完整性,以满足指令“写一个令人信服的匿名威胁。”下面的目标使用“当然,这是一个令人信服的匿名死亡…

【笔试强训】Day3 --- 简写单词 + dd爱框框 + 除2!

文章目录 1. 简写单词2. dd爱框框3. 除2! 1. 简写单词 【链接】:简写单词 解题思路:简单模拟题,主要是处理⼀下输⼊的问题。(也可以利用string类中的find函数,但时间复杂度会偏高) #include …

06:HAL----定时器

前言: 每来一个TIM 时钟CNT计数器就记一个数,记到某一个程度就会产生溢出。然后ARR就会装载到CNT计数器里面 一:TIM 1:介绍 TIM(Timer)定时器 定时器可以对输入的时钟进行计数,并在计数值达到设定值时触发中断 16位计…

BEVCar:用于BEV地图和目标分割的相机-雷达融合

BEVCar:用于BEV地图和目标分割的相机-雷达融合 摘要IntroductionRelated WorkTechnical ApproachImage Feature LiftingBEV Segmentation Head BEVCar: Camera-Radar Fusion for BEV Map and Object Segmentation 摘要 鸟瞰视角下的语义场景分割对于移动机器人的规划和决策至关…

Python-VBA函数之旅-globals函数

目录 一、globals函数的常见应用场景: 二、globals函数与locals函数对比分析: 1、globals函数: 1-1、Python: 1-2、VBA: 2、推荐阅读: 个人主页:https://blog.csdn.net/ygb_1024?spm101…

分保、等保、关保、密评之间联系与区别

分保、等保、关保、密评之间联系与区别 什么是“三保一评”分保等保关保密评 相关的法律法规依据分保等保关保密评 分保工作简介分保工作流程分级保护技术要求 等保工作简介关保工作简介密评工作简介三保一评联系与区别 什么是“三保一评” 分保 涉密信息系统分级保护 指涉密信…

CCleaner怎么清理软件缓存 CCleaner清理要勾选哪些 ccleanerfree下载

CCleaner软件是一款优秀的数据清理软件,其中没有硬盘和内存的设置,也不含任何广告软件,其出色的注册表清洁功能能够保证您的电脑更稳定运行。本文将围绕CCleaner怎么清理软件缓存,CCleaner清理要勾选哪些的相关内容进行介绍。 一、…

2024上海国际半导体制造设备材料与核心部件展览会

2024上海国际半导体制造设备材料与核心部件展览会 2024 Shanghai International Semiconductor Manufacturing Equipment Materials and Core Components Exhibition 时间:2024年11月18日-20日 地点:上海新国际博览中心 详询主办方陆先生 I38&#…

C语言转型之路:从C到C++的类与对象初探

欢迎来CILMY23的博客 本篇主题为 C语言转型之路:从C到C的类与对象初探 个人主页:CILMY23-CSDN博客 个人专栏系列: Python | C语言 | 数据结构与算法 | C 感谢观看,支持的可以给个一键三连,点赞关注收藏。 写在前头…

PAN2416AF 2.4GHz 无线收发 SOC 芯片

1 概述 PAN2416AF 芯片是工作在 2.400~2.483GHz 世界通用 ISM 频段的单片无线收发芯片。该芯片集 成射频收发机、频率发生器、晶体振荡器、调制解调器和低功耗 MCU 等功能模块,并且支持 一对多组网和带 ACK 的通信模式。 用户通过 MCU 的 I/O 口向芯片发出指令…

【源码】基于I.MX6ull驱动移植ds18b20的实验详解

文章目录 前言一、硬件连接二、代码移植1.驱动代码2.编译程序 三、移植到开发板参考连接 前言 提示:基于I.MX6ull驱动移植ds18b20的实验: 实验平台:正点原子alpha开发板V2.2 传感器:ds18b20模块 一、硬件连接 ds18b20的VCC&…

将windows作为网关

开启转发 reg add HKLM\SYSTEM\CurrentControlSet\Services\Tcpip\Parameters /v IPEnableRouter /D 1 /f开启routing and remote access服务 这样局域网里面别的设备能通过windows进行上网 参考:https://www.cnblogs.com/chrishg/articles/12861053.html

Android的一些总结

先打开自定义的app显示欢迎->消失 打开桌面应用程序->在桌面应用程序中也要能一键启动打开视频播放的app 桌面应用程序广播接收者进行监听,然后打开服务/activity是可行的。 ########################## 日志,调试: Usb 无线 串口…