北工大汇编——综合题(1)

2023-11-17

题目要求

统计字符数。从键盘输入一行字符,统计字母、空格、数字、其他宇符的个数,并显示。要求:提示输入一行宇符串;键盘输入宇符串,Enter 键结束输入,并换行显示结果。
在这里插入图片描述

题目代码

DATAS SEGMENT
    ;此处输入数据段代码
    msg DB 0ah, 0dh, 'please input string enter:quit$'
   	alpCount DB 0ah, 0dh, 'alpCount:$'
   	spaceCount DB 0ah, 0dh, 'spaceCount:$'   
   	numCount DB 0ah, 0dh, 'numCount:$'   
   	otherCount DB 0ah, 0dh, 'otherCount:$'       
DATAS ENDS

STACKS SEGMENT
    ;此处输入堆栈段代码
STACKS ENDS

CODES SEGMENT
    ASSUME CS:CODES,DS:DATAS,SS:STACKS
START:
    MOV AX,DATAS
    MOV DS,AX
    ;此处输入代码段代码
    mov ch, 0 ;字母
    mov cl, 0 ;空格
    mov bh, 0 ;数字
    mov bl, 0 ;其他字符
    
    input:
    	MOV AH, 1 
	    INT 21H
	    
	    cmp al, 13
	    je output
	    
	    cmp al, ' '
	    je isSpace
	    
	    cmp al, '0'
	    jl isOther
	    
	    cmp al, '9'
	    jle isNum
	    
	    cmp al, 'A'
	    jl isOther
	    
	    cmp al, 'Z'
	    jle isAlp
	    
	    cmp al, 'a'
	    jl isOther
	    
	    cmp al, 'z'
	    jle isAlp
	    jmp isOther
	    
	isSpace:
		inc cl
		jmp input
	
	isOther:
		inc bl
		jmp input
		
	isNum:
		inc bh
		jmp input
	
	isAlp:
		inc ch
		jmp input
		
	output:
		add ch, '0'
		add cl, '0'
		add bh, '0'
		add bl, '0'
		
		MOV DX, OFFSET alpCount
    	MOV AH, 09
    	INT 21H
    	
    	MOV DL, ch
		MOV AH,02H
		INT 21H
		
		MOV DX, OFFSET spaceCount
    	MOV AH, 09
    	INT 21H
		
		MOV DL, cl
		MOV AH,02H
		INT 21H
		
		MOV DX, OFFSET numCount
    	MOV AH, 09
    	INT 21H
		
		MOV DL, bh
		MOV AH,02H
		INT 21H
		
		MOV DX, OFFSET otherCount
    	MOV AH, 09
    	INT 21H
		
		MOV DL, bl
		MOV AH,02H
		INT 21H
		
	    
    MOV AH,4CH
    INT 21H
CODES ENDS
    END START








本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

北工大汇编——综合题(1) 的相关文章

  • 汇编JMP语句 IP值和偏移量的问题。问题如下,我想知道IP值是怎么变化的。还有8086一条指令占个几字节啊

    汇编JMP语句 IP值和偏移量的问题 问题如下 我想知道IP值是怎么变化的 还有8086一条指令占个几字节啊 2011 10 16 22 26 干物虫子 分类 汇编语言 浏览404次 1 在0624单元内忧一条二字节JMP SHORT OB
  • APK反编译破解方法与加密措施

    所谓APK指的是Android操作系统的应用程序安装文件 所谓Crack 简单地理解为 破解 我具体指的是反编译APK文件进行汇编级的代码分析 并修改或插入自己的代码 重新签名打包为APK文件 以达到改变程序原有行为的目的 由以上的说明可知
  • 汇编: mul乘法指令(字乘法结果在dx:ax中,8位乘法:一个乘数默认放在al中)

    版权声明 本文为博主原创文章 遵循 CC 4 0 BY SA 版权协议 转载请附上原文出处链接和本声明 本文链接 https blog csdn net m0 37564426 article details 85563170
  • xorl %eax, %eax

    这是GNU的汇编 xorl eax eax 这句起什么作用 按位异或 相同的位置为0 不同的位置为1 eax和eax的每一位都相同 所以相当于清零 movl 8 ebp ecx testl ecx ecx 这句起什么作用 jle L3 8
  • ARM 汇编基础知识

    1 为什么学习汇编 我们在进行嵌入式 Linux 开发的时候是绝对要掌握基本的 ARM 汇编 因为 Cortex A 芯片一 上电 SP 指针还没初始化 C 环境还没准备好 所以肯定不能运行 C 代码 必须先用汇编语言设置好 C 环境 比如
  • linux汇编编译器:GAS和NASM的比较

    GAS即GNU AS汇编编译器 其属于AT T风格 我们常用的GNU的产品还有GCC G NASM是Linux平台下常用的汇编编译器 是intel风格的汇编编译器 MASM是Windows平台下的汇编编译器 也使用Intel风格 我们学80
  • C语言与汇编——宏定义,头文件重复包含,内存申请和释放

    c文件 gt 替换 gt 编译 gt 链接 gt exe文件 typedef 只能给变量类型起别名 而 define可以给任何东西起别名 头文件重复包含问题 pragma once也能避免同一个头文件被包含 include 多次 一般由编译
  • arm汇编指令详细整理及实例详解

    目录 一 简介 二 ARM 汇编指令说明 2 1 32位数据操作指令 2 2 32位存储器数据传送指令 2 3 32位转移指令 2 4 其它32位指令 三 实例讲解 3 1 MRS 3 2 MSR 3 3 PRIMASK 3 4 FAULT
  • 汇编小作业(3) 十进制数的平方根

    用子程序结构编程 从键盘输入一个十进制数 对其开平方后分别将其平方根和余数以十进制数的形式显示 DATA SEGMENT SUM DW 2 DUP BUF DB 7 DUP DATA ENDS stack segment 定义栈段 保存di
  • push和pushl的区别

    AT T汇编中 命令中可以指定操作范围 如pushb是将一个byte压栈 而pushw就是将一个word压栈 同样pushl就是压栈long 也就是双字 esp指的是esp寄存器 已知是双字 而0xfffffff8 p 指的是一个内存空间
  • libtool的作用及应用

    gcc library makefile archive command object 注意 本文为转载 原文也是转载 但是为了尊重他人得劳动成果 我将将转载网址贴出来 libtool常见于autoconf automake 单独用的例子很
  • 反汇编笔记

    1 OD中ctrl f9 运行到返回 就是运行到当前断点所在的函数末尾 retn xxx 处 若xxx 10 那么 10等于10进制的16 就是说这个函数有4个参数 一个参数默认是占4字节 所以就是retn 10 2 调试程序时 在OD内部
  • asm:常用语法

    常用语法 1 循环 1 1 使用条件跳转指令实现循环 1 2 使用LOOP指令实现循环 2 字符串 2 1 指定字符串的长度 2 2 字符串指令 2 3 重复前缀 3 数组 4 递归 5 宏 6 文件操作 7 内存管理 1 循环 1 1 使
  • 一文弄懂c/c++编译过程(预处理,编译,汇编,链接)

    目录 1 为什么要编译 2 编译过程 3 实验验证 1 为什么要编译 c语言是一门高级语言 需要编译器将其转换成计算机能理解的机器语言 才能在计算机上执行 编译的过程就是将c语言代码转换成汇编代码文件的过程 2 编译过程 程序从代码编译成可
  • 汇编宏伪指令介绍

    1 汇编宏伪指令介绍 macro macname macargs endm 1 macro 和 endm 表示宏定义的开始和结束 2 macro 后面接着宏定义的名字 然后是参数 参数后面的宏定义的实现 3 在宏定义中使用参数 需要添加前缀
  • Linux下C编译系统

    Linux下C编译系统 编译过程概述 了解一些编译知识的读者都知道 所谓编译 就是在编译程序读取源程序 字符流 对之进行词法和语法的分析 将高级语言指令转换为功能等效的汇编代码 再由汇编程序转换为机器语言 并且按照操作系统对可执行文件感谢格
  • asm:常见指令大全

    常见指令大全 算数指令 INC 指令 DEC 指令 ADD 指令 SUB指令 MUL指令 IMUL指令 DIV指令 IDIV指令 逻辑指令 AND指令 OR指令 XOR 指令 TEST指令 NOT指令 交换指令 xchg 比较指令 CMP指
  • ads+jlink和keil+jlink调试环境配置

    ads1 2 and jlinkv8 1 安装ads1 2和jlink驱动Setup JLinkARM V408i exe 安装ads1 2时 最后在100 时如果持续时间长 耐心等一下吧 没有等待而点了cancel 则之后就不好重装了 解
  • 8086乘法指令MUL,IMUL

    对于加减指令来说CPU对有符号加减和无符号加减一视同仁 根据我们需要把它作为有符号的结果还是无符号的结果 但是乘除法指令区分有符号乘除和无符号乘除指令 无符号数乘法指令MUL MULtiply MUL OPRD OPRD可以用除立即数以外的
  • C语言深入学习--checklist4:宏、枚举、switch

    宏 1 宏的本质是什么 函数 语句 类型定义 或者其它 预编译器的文本替换 1 你知道语言设计者为什么设计宏吗 这些原因目前是否成立 在 C程序中 可以用宏代码提高执行效率 宏代码本身不是函数 但使用起来象函数 预处理器用复制宏代码的方式代

随机推荐

  • VScode 调试python程序,debug状态闪断问题的解决方法

    0 Few words 之前一直在VSCode中debug C 和Python的程序没出过闪断的问题 但是最近在另一台电脑上debug 同样的方法 设置launch json和CMakeList加debug状态等等操作 如我另一篇blog写
  • Brew:command not found in Macbook

    1 zsh command not found brew 进入brew的工作目录 usr local一看 原来 usr local bin都没有了 难怪系统找不到brew这个命令 那么怎么办 最简单的办法就是重新安装Homebrew 1 r
  • 【coding】pandas返回文本序列长度及其描述性统计

    coding pandas返回文本序列长度及其描述性统计 文本长度统计 pandas时不要盲目的使用for loop 费时费力 要熟练掌握pandas提供的内置函数 df len a df a str len 返回的df len a本身也是
  • echarts tootip点击显示 移开不消失

    描述 tooltip点击时显示 依赖不会自动消失 tooltip上有按钮可以点击 可以这样修改 使用tooltip的triggerOn属性 tooltip triggerOn string default mousemove click 提
  • 【unityVR】关于Oculus如何连接unity编译器,无需打包就可以看到场景的教程

    前言 几天的碰壁 没有白费 可以说光是做一个能让让Oculus跑起来的demo这个过程中 几乎是一个坑连着一个坑 国内教程不完善 google也有少量的坑 下面就开始吧 我尽量每一步都说详细点 切记 一定每一步都照做 我就是有些地方想偷懒
  • 【华为机试真题 Python】敏感字段加密

    目录 题目描述 输入描述 输出描述 参考示例 参考代码 机试介绍 写在最后
  • 天翼云登录逆向

    逆向网址 https m ctyun cn wap main auth login redirect 2Fmy 通过按F12抓包分析 加密的是password 在全局中搜索关键词password 通过断点分析进入Object方法中 通过观察
  • Linux中的虚拟化

    在信息大爆炸的今天 大数据 云计算孕育而生 随着计算机硬件的高速发展 单台计算机用途的单一化 在大规模的服务器机房中很多机器职责单一 有些只负责计算 有些只负责存储处理等 硬件的性能潜力不能被高效开发 于是虚拟化技术也由此被设计并开发出来
  • WebBrowser 设置IE兼容性

    在窗体应用程序和wpf程序中会使用到WebBrowser 来显示一个网页 但是可能要显示的网页要求在特定的模式下运行 因此需要调整WebBrowser 对网页兼容性的设置 通过在注册表中设置HKEY CURRENT USER Softwar
  • 【Linux之Shell脚本实战】猜拳小游戏shell脚本

    Linux之Shell脚本实战 猜拳小游戏的shell脚本 一 脚本要求 二 检查本地系统环境 1 检查系统版本 2 检查系统内核版本 三 配置脚本注释模板 1 编辑 vimrc 文件 2 检查模板生效情况 四 编辑shell脚本 1 创建
  • 02vue项目如何配置多页面

    vue项目如何配置多页面 前言 因为我们做项目不可能只有一个界面 就简单说最起码的后台页面 登录界面 主页面最基本的加在一起还三个页面 上次所言cli脚手架搭建一个从0到1的项目 只是单页面 cli脚手架虽然能快速的帮我们搭建一个项目 配置
  • mybatis中批量插入的两种方式(高效插入)

    MyBatis简介 MyBatis是一个支持普通SQL查询 存储过程和高级映射的优秀持久层框架 MyBatis消除了几乎所有的JDBC代码和参数的手工设置以及对结果集的检索封装 MyBatis可以使用简单的XML或注解用于配置和原始映射 将
  • 通过ffmpeg将aac格式转换成wav格式

    这是一个很简单的小程序 但也让我这个初学者折腾了好几天 走算是入门了 总结下学习的过程 希望能够初学者能有所帮助 看源代码 首先得让让它跑起来 看了ffmpeg提供源码api example c 很好的入门程序 虽然对视频编解码十分顺利 但
  • Ubuntu下安装Cppcheck源码操作步骤

    Cppcheck是用在C C 中对code进行静态检查的工具 它的源码在 https github com danmar cppcheck 它的License是GPL 3 0 Cppcheck可以检查不通过编译的文件 执行的检查包括 1 自
  • JavaWeb核心技术——Response响应

    目录 1 Response对象 1 1 Response设置响应数据功能介绍 1 2 Respones请求重定向 1 2 1 Response重定向 redirect 一种资源跳转方式 1 2 2 重定向的实现方式 1 2 3 重定向的特点
  • LeetCode题目笔记——2428. 沙漏的最大总和

    文章目录 题目描述 截图 题目描述 题目难度 中等 方法一 遍历 代码 Python 方法一优化 代码 Python 代码 C 总结 题目描述 截图 这个题是上周的周赛里的第二题 当时做的时候只用了最简单的遍历方法 虽然通过了 但是也挺慢的
  • --RabbitMQ的应用场景以及基本原理介绍

    1 背景 RabbitMQ是一个由erlang开发的AMQP Advanved Message Queue 的开源实现 2 应用场景 2 1异步处理 场景说明 用户注册后 需要发注册邮件和注册短信 传统的做法有两种1 串行的方式 2 并行的
  • 中科院分区表_学术科普:汤森路透分区和中科院JCR分区介绍

    2019年中科院分区表更新了 一区共有1946本 二区有3257本 三区3975本 四区一共有5314本 其中 PNAS及Nature Communications重新回到一区 去年在二区 分区表共收录有14492本期刊 把他们全部放在图文
  • Anaconda3中torch.cuda.is_available()返回false的可能解决办法

    1 问题 在CUDA cudnn 已装好 指令 conda install pytorch torchvision torchaudio pytorch cuda 11 7 c pytorch c nvidia 一直转圈 不得已使用pip指
  • 北工大汇编——综合题(1)

    题目要求 统计字符数 从键盘输入一行字符 统计字母 空格 数字 其他宇符的个数 并显示 要求 提示输入一行宇符串 键盘输入宇符串 Enter 键结束输入 并换行显示结果 题目代码 DATAS SEGMENT 此处输入数据段代码 msg DB