从键盘输入一系列字符(以回车结束),按数字,大小写字母分类计数,并在屏幕上打印出来。


DATA    SEGMENTINFOR1  DB 0AH,0DH,"Please Press Any Key to input a letter:$"INFOR2  DB 0AH,0DH,"Lowercase Letter : $"INFOR3  DB 0AH,0DH,"Uppercase Letter : $"INFOR4  DB 0AH,0DH,"Digit : $"INFOR5  DB 0AH,0DH,"Other Letter : $"
DATA    ENDS
CODE    SEGMENTASSUME CS:CODE,DS:DATA
START:
PRINT MACRO STR,RHS  ; MACRO 为宏LEA DX,RHSMOV AH,09HINT 21HMOV DL,STR ADD DL,30HMOV AH,02H INT 21H
ENDMMOV  AX,DATAMOV  DS,AXMOV  DX,OFFSET INFOR1MOV  AH,09HINT 21H MOV BX,0 MOV CX,0
XUNHUAN:MOV AH ,01HINT 21H ;AL CMP  AL,0DH ; \nJZ  DISPLAYCMP  AL,'0'JB   OTHERCMP  AL,'9'JBE  DIGITCMP  AL,'A'JB   OTHERCMP  AL,'Z'JBE  UPPERCMP  AL,'a'JB   OTHERCMP  AL,'z'JBE  LOWERJMP  XUNHUAN LOWER:INC BLJMP XUNHUAN ;     UPPER:  INC BHJMP  XUNHUAN        DIGIT:  INC CLJMP  XUNHUAN        OTHER:  INC CH JMP  XUNHUAN    DISPLAY:PRINT BL,INFOR2PRINT BH,INFOR3PRINT CL,INFOR4PRINT CH,INFOR5MOV  AH,4CHINT  21H
CODE    ENDS
END  START

小结:

1. 如何判断回车符号?

回车符(跳转到本行开头)    0DH
换行符(到下一行)         0AH

2. 在输出的时候记得加上30H,用来以ASCII码的形式输出

2.输入一段数字字符,将其转换为数值,然后从1加到该数值,最后以十进制数值形式输出总和

DATA SEGMENT INF1  DB 0AH,0DH,"PLEASE INPUT A NUMBER (0~361): $"MSG2  DB 0AH,0DH," 2 Hexadecimal  : $"MSG3 DB  0AH,0DH,"THE SUM(1+2+3+....) IS : $"IBUF DB  100,0,100 DUP('$')OBUF DB  6 DUP(?)
DATA ENDS
CODE SEGMENT ASSUME CS:CODE ,DS:DATA
START:
PRINT_MSG MACRO parameterLEA DX,parameterMOV AH,09HINT 21H
ENDMMOV AX,DATA MOV DS,AX PRINT_MSG INF1 LEA DX,IBUF ;输入一个十进制数字(<361 )MOV AH,0AHINT 21H MOV CL,IBUF+1 MOV CH,0 MOV AX,0LEA SI,IBUF+2
AGAIN: MOV DX,10MUL DX ;如果参数是字节,将把 AL 做乘数, 结果放在 AX;如果参数是字 , 将把 AX 做乘数, 结果放在 DX:AXAND BYTE PTR [SI],0FH ADD AL,[SI] ADC AH,0INC SI LOOP AGAIN ; AX  中存放累加和; BX  用来存放每次要加的数值MOV CX,AX MOV AX,0MOV BX,1
LOOP2:ADD AX,BXINC BXLOOP LOOP2 MOV BX,OFFSET OBUF+5 MOV BYTE PTR [BX],'$'MOV CX,10
LOOP1:MOV DX,0DIV CX ; 被除数默认存放在 AX 中 ; 除数是8位, 则被除数为 AX,    AL 存储商,AH 储存余数; 除数是16位,则被除数为 DX:AX ,AX 储存商,DX 储存余数ADD DL,30H DEC BXMOV [BX],DLOR AX,AXJNZ LOOP1;PRINT_MSG MSG3MOV DX,BX MOV AH,09HINT 21HMOV AH,4CHINT 21HCODE ENDS
END START 

小结:

1. MUL 乘法指令

如果参数是字节,将把 AL 做乘数, 结果放在 AX
如果参数是字 , 将把 AX 做乘数, 结果放在 DX:AX

2. ADC 指令

  1. 要求低位字节相加,高位字节再相加时就要考虑低位相加的进位,即CF,这时就要用到ADC指令。
    ADD AL,[SI] ADC AH,0

3. 为什么不能超过 361 ?

因为从1加到361,会是65341,再大的话会超出AX的存储范围。

4. DIV 指令

除数是8位, 则被除数为 AX,    AL 存储商,AH 储存余数
除数是16位,则被除数为 DX:AX ,AX 储存商,DX 储存余数

转载于:https://www.cnblogs.com/Tattoo-Welkin/p/10335287.html

汇编语言程序设计之二相关推荐

  1. 南邮汇编语言程序设计实验二————用户登录验证程序的设计

    目录 实验环境(实验设备) 实验要求 实验代码 相关函数 实验结果 实验环境(实验设备) 硬件:微型计算机 软件:Windows 操作系统.汇编语言开发工具MASM或TASM 实验要求 1. 程序执行 ...

  2. 汇编语言实验二 汇编语言程序设计(顺序、多分支、循环)

    **实验二 汇编语言程序设计(顺序.多分支.循环)** 一. 实验目的 1.掌握顺序和循环程序结构和设计方法: 2.熟悉在PC机上建立.汇编.连接.调试和运行8086/8088汇编语言程序的过程. 二 ...

  3. 合肥工业大学2021汇编语言程序设计上机实验二

    实验二  高级汇编程序设计 实验目的 1. 掌握中断服务子程序的编写. 2. 汇编语言与高级语言的混编. 实验内容 1.挂接1CH中断,正计时90秒后退出.要求屏幕显示0-89的秒数. 2.VC++中 ...

  4. 《IBM-PC汇编语言程序设计》(第2版)【沈美明 温冬婵】答案

    内容修订.解析.扩展: <IBM-PC汇编语言程序设计>(第2版)[沈美明 温冬婵]--自编解析与答案 第 一 章. 习 题 1.1 用降幂法和除法将下列十进制数转换为二进制数和十六进制数 ...

  5. 汇编语言程序设计,计算比赛成绩

    一.设计内容与设计要求 1.课程设计目的: <汇编语言程序设计>是计算机专业的重要的专业基础课,通过本课程设计使学生进一步巩固课堂所学,全面熟悉.掌握8088宏汇编语言程序设计的基本方法和 ...

  6. 汇编语言ax=0c58ch,第4章89C5汇编语言程序设计.ppt

    第4章89C5汇编语言程序设计 三.实验说明 1.因为本实验是交通灯控制实验,所以要了解实际交通灯的变化情况和规律.假设一个十字路口为东西南北走向.初始状态0为东西红灯,南北红灯.然后转状态1东西绿灯 ...

  7. 《汇编语言程序设计》(双语)上机指导

    唔.省得每次忘带U盘... <汇编语言程序设计>(双语)上机指导... 1 实验1 建立windows环境下32位汇编语言开发环境... 2 实验2  Instruction Format ...

  8. Windows环境下32位汇编语言程序设计(典藏版)(含CD光盘1张)

    Windows环境下32位汇编语言程序设计(典藏版)(含CD光盘1张)(畅销10年,经典再现!) 罗云彬 著 ISBN 978-7-121-20759-4 2013年7月出版 定价:99.00元 75 ...

  9. 《汇编语言程序设计教程》人民邮电出版社第二版习题及参考答案

    网上的答案是第一版的,重新整理了一下 <汇编语言程序设计教程>人民邮电出版社第二版 刘慧婷,王庆生 主编 习题及参考答案 更多汇编内容请访问:omegaxyz.com 第一章至第五章 核对 ...

最新文章

  1. python制作解压工具_使用python制作一个解压缩软件
  2. python如何调用图片-python实现读取并显示图片的两种方法
  3. 深入理解JVM(5)——虚拟机类加载机制
  4. Powershell 时间相关
  5. clion小白使用技巧(持续更新中)
  6. 一文读懂数据挖掘建模预测
  7. Navicat相关注册码
  8. ReviewBoard+SVN配置强制code review
  9. ECMAScript标准命名
  10. 编译原理 —— 知识结构导图
  11. 2018蓝桥杯 航班时间和乘积尾零
  12. webaudio ajax,Web Audio 入门之读取左右声道数据
  13. POJ 1637 混合图的欧拉回路判定
  14. 文本的检测、识别实战:使用 Tesseract 进行 OpenCV OCR 和文本识别
  15. 世纪互联数据中心有限公司
  16. Flowable流程引擎和各类表说明
  17. 网站优化问题:雅虎网站优化35条
  18. 风力发电机的简单性能仿真
  19. 使用PMS系统项目管理
  20. 【图像识别】基于模板匹配实现蓝色、绿色、黄色车牌识别附matlab代码

热门文章

  1. 使用OpenGL在电脑屏幕上绘图
  2. 高职计算机大类专业目录,新版高职专业目录
  3. 计算机专业及相关专业目录,计算机相关专业目录
  4. 哪位大哥帮个忙,求一个用jquery实现1:1中国农业银行下的关于农行的一个页面急急急
  5. 2021-09-29
  6. 【Linux】循序渐进学运维-服务篇-nginx入门
  7. 告别纸质化考试,突破地域时间限制,在线考试系统为人事考试带来新变革
  8. 工程项目清标的内容和重要性
  9. web使用window.print()实现分页批量打印。
  10. [Unity3D]Navigation导航系统讲解及其应用