/***************通过调用(INT 21H)表中的01h号功能号从键盘输入一个字符并回显到视频显示器上*****************/

DATAS SEGMENT

;此处输入数据段代码

DATAS ENDS

STACKS SEGMENT

;此处输入堆栈段代码

STACKS ENDS

CODES SEGMENT

ASSUME CS:CODES,DS:DATAS,SS:STACKS

START:

MOV AX,DATAS

MOV DS,AX

;此处输入代码段代码

MOV AH,

INT 21H

MOV AH,4CH

INT 21H

MOV AH,4CH

INT 21H

CODES ENDS

END START

/***************输入姓名学号换行显示*****************/

DATA SEGMENT
STRING DB 'xingming',0DH,0AH,'xuehao','$'
DATA ENDS
CODE SEGMENT
ASSUME CS:CODE,DS:DATA
BEGIN:
MOV AX,DATA
MOV DS,AX
MOV AH,09H
LEA DX,STRING
INT 21H
MOV AH,4CH
INT 21H
CODE ENDS
END BEGIN

/***************输入一个字母显示下一个字母*****************/

Code  Segment
Assume CS:Code,DS:Code
KBEsc equ 1BH
PromptStr DB 'Please input a letter(Esc to exit): $'
Start: push cs
pop ds ;使数据段与代码段同段 Begin: lea dx,PromptStr
mov ah,
int 21h
mov ah,
int 21h
cmp al,KBEsc
jz Exit_Proc
mov cx,
mov dl,al
mov ah,
Disp_Chr: inc dl
int 21h
loop Disp_Chr
mov dl,
int 21h
mov dl,
int 21h
jmp Begin Exit_Proc: mov ah,4ch ;结束程序
int 21h
Code ENDS
END Start ;编译到此结束

/***************8位16进制加法*****************/

DATA SEGMENT
STRING DB 'The result of 13579BDFH + 02468ACEH is:','$'
XL DW 9BDFH
XH DW 1357H
YL DW 8ACEH
YH DW 0246H
DATA ENDS
CODE SEGMENT
ASSUME CS:CODE,DS:DATA
START: MOV AX,DATA
MOV DS,AX
MOV DX,OFFSET STRING ;显示信息
MOV AH,09H
INT 21H
MOV AX,XL
ADD AX,YL ;Y低位数值与X低位数值相加
MOV BX,AX ;BX中存放结果的低16位
MOV AX,XH
ADC AX,YH ;Y高位数值与X高位数值相加
MOV CX,AX ;CX中存放结果的高16位
;显示结果
MOV DH,CH
CALL SHOW
MOV DH,CL
CALL SHOW
MOV DH,BH
CALL SHOW
MOV DH,BL
CALL SHOW
MOV AX,4C00H
INT 21H
SHOW PROC NEAR
PUSH DX
PUSH AX
MOV AL,DH
AND AL,0F0H
MOV DL,CL;必须把cl暂存dl里,否则下次对clcall show时会把cl变为4,而不是原来存的数
MOV CL,
SHR AL,CL
MOV CL,DL
CMP AL,0AH
JB C2
ADD AL,07H
C2: ADD AL,30H
MOV DL,AL;show character
MOV AH,02H
INT 21H
MOV AL,DH
AND AL,0FH;取低4位
CMP AL,0AH
JB C3
ADD AL,07H
C3: ADD AL,30H
MOV DL,AL;show character
MOV AH,02H
INT 21H
POP AX
POP DX
RET
SHOW ENDP
CODE ENDS
END START

【汇编】MASM6.15几个简单的汇编程序的更多相关文章

  1. 汇编实验15:安装新的int 9中断例程

    汇编实验15:安装新的int 9中断例程 任务 安装一个新的int 9中断例程,功能:在DOS下,按下“A”键后,除非不在松开,一旦松开后,就显示满屏幕的“A”,其他键照常处理. 预备知识概要 这次实 ...

  2. MASM6.15汇编程序例子

    /***************通过调用(INT 21H)表中的01h号功能号从键盘输入一个字符并回显到视频显示器上*****************/ DATAS SEGMENT ;此处输入数据段代 ...

  3. Linux汇编教程02:编写第一个汇编程序

    学习一门语言,最好的方式就是在运用中学习,那么在这一章节中,我们开始编写我们的第一个汇编程序.当然作为第一个程序,其实十分的简单,但可以给大家一个基本的轮廓,了解汇编大概是这样的. 我们这个程序实际上 ...

  4. 4.15 每周作业 —— 简单DP

    免费馅饼 Time Limit : 2000/1000ms (Java/Other)   Memory Limit : 65536/32768K (Java/Other) Total Submissi ...

  5. Java学习笔记 11/15:一个简单的JAVA例子

    首先来看一个简单的 Java 程序. 来看下面这个程序,试试看是否看得出它是在做哪些事情! 范例:TestJava.java   // TestJava.java,java 的简单范例  public ...

  6. ROS2学习之旅(15)——编写简单的服务和客户节点(C++)

    当节点使用服务进行通信时,发送数据请求的节点称为客户节点,响应请求的节点称为服务节点.请求和响应的结构由.srv文件决定. 本文的例子是一个简单的整数加法系统:一个节点请求两个整数的和,另一个节点响应 ...

  7. 使用BAT编译,链接,执行汇编代码

    大家都知道汇编程序(MASM)的上机过程,先要对源代码进行汇编. 连接,然后再执行,而这中间有很多环节需要输入很多东西,麻烦的很(只有经历过的朋友才懂得).如何使这个过程变的简单呢?在我们搞汇编课程设 ...

  8. GCC内联汇编入门

    原文为GCC-Inline-Assembly-HOWTO,在google上可以找到原文,欢迎指出翻译错误. 中文版说明 由于译者水平有限,故译文出错之处,还请见谅.C语言的关键字不译,一些单词或词组( ...

  9. X86 寻址方式、AT&T 汇编语言相关知识、AT&T 与 Intel 汇编语言的比较、gcc 嵌入式汇编

    注:本分类下文章大多整理自<深入分析linux内核源代码>一书,另有参考其他一些资料如<linux内核完全剖析>.<linux c 编程一站式学习>等,只是为了更好 ...

随机推荐

  1. hdu2015 偶数求和【C++】

    偶数求和 Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Others)Total Submis ...

  2. 创建RpcEnv

    感觉这篇文章不错 2.1.2.创建RpcEnv -  RpcEndpoint -  RpcEndpointRef val systemName = if (isDriver) driverSystem ...

  3. [BZOJ 4563]放棋子

    [BZOJ 4563]放棋子 题目 给你一个N*N的矩阵,每行有一个障碍,数据保证任意两个障碍不在同一行,任意两个障碍不在同一列,要求你在这个矩阵上放N枚棋子(障碍的位置不能放棋子),要求你放N个棋子 ...

  4. Network Saboteur POJ 2531 回溯搜索

    Time Limit: 2000MS   Memory Limit: 65536K Total Submissions: 12886   Accepted: 6187 Description A un ...

  5. [转]C#操作SQL Server数据库

    转自:C#操作SQL Server数据库 1.概述 ado.net提供了丰富的数据库操作,这些操作可以分为三个步骤: 第一,使用SqlConnection对象连接数据库: 第二,建立SqlComman ...

  6. COCOS2D 学习笔记

    cc.Node.scheduleUpdate:function () * schedules the "update" method.                       ...

  7. String字符串方法具体解释

    Java开发中,基本都会用户String,有些时候忘记了它还有某一个方法,或者曾经没有使用到.而这些方法可能会节约非常多时间.自己为了学习这些方法,决定对部分測试一下. 定义:String=" ...

  8. Qt为啥从4.8直接就跳到5.3了呢?这不科学吧

    http://qt-project.org/downloads Qt 5.3 Select the file according to your operating system from the l ...

  9. C++模板(菜鸟教程)

    C++模板(菜鸟教程) C++ 模板 模板是泛型编程的基础,泛型编程即以一种独立于任何特定类型的方式编写代码. 模板是创建泛型类或函数的蓝图或公式.库容器,比如迭代器和算法,都是泛型编程的例子,它们都 ...

  10. C# WinForm小程序(技术改变世界-cnblog)

    WinForm小程序(技术改变世界-cnblog)   需求: 1.点击按钮  更新 当前时间 2.输入 身份证,必须身份证 排序(类似银行卡那样的空格),自动生成空格排序 3.实现 必须按 第一个按 ...