MASM6.15汇编程序例子
/***************通过调用(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汇编程序例子的更多相关文章
- Linux中Grep常用的15个例子【转】
转自:https://www.aliyun.com/jiaocheng/1390860.html?spm=5176.100033.1.9.6a1e41e8Pdjynm 摘要:Grep命令主要用于从文件 ...
- 【汇编】MASM6.15几个简单的汇编程序
/***************通过调用(INT 21H)表中的01h号功能号从键盘输入一个字符并回显到视频显示器上*****************/ DATAS SEGMENT ;此处输入数据段代 ...
- (译)linux系统关于命令echo的15个例子
15 Practical Examples of ‘echo’ command in Linux By Avishek Kumar Under: Linux Commands On: August 2 ...
- iOS7编程Cookbook中例15.8中一个小问题
大熊猫猪·侯佩原创或翻译作品.欢迎转载,转载请注明出处. 如果觉得写的不好请多提意见,如果觉得不错请多多支持点赞.谢谢! hopy ;) 该书的15.8例子标题为Editing Videos on a ...
- Quartz入门例子简介 从入门到菜鸟(一)
转: Quartz入门例子简介 从入门到菜鸟(一) 2016年11月19日 22:58:24 爱种鱼的猫 阅读数:4039 刚接触quartz这个词并不是在学习过程中...而是WOW里面的界面插件 ...
- ArcGIS Python人门到精通目录基于ArcGIS10.2,100以上案例15章42个视频806分钟,51GIS网站上线
ArcGIS Python人门到精通目录 闫老师 QQ:276529800 微信13108507190 1. ArcGIS Python基础 1.1 ArcGIS为什么学习Python 1.2 A ...
- 使用BAT编译,链接,执行汇编代码
大家都知道汇编程序(MASM)的上机过程,先要对源代码进行汇编. 连接,然后再执行,而这中间有很多环节需要输入很多东西,麻烦的很(只有经历过的朋友才懂得).如何使这个过程变的简单呢?在我们搞汇编课程设 ...
- Quartz —— 从 HelloWorld 开始
1.Quartz 是用来完成任务调度的. 2.Quartz 的三个核心概念:调度器.任务.触发器. (1)Job:通过实现该接口来定义需要执行的任务. public interface Job { / ...
- Not Hello World
通常对于一门语言的学习,一般都是以"Hello,World!"开始的.但对于汇编语言的学习,输出这句话并不容易,首先得了解寄存器等硬件知识. 汇编语言要得以运行,首先要讲源文件编译 ...
随机推荐
- DIV与IDIV的用法
DIV (unsigned divide) 无符号数除法 格式:DIV SRC 执行的操作: 字节操作:16位被除数在AX,8位除数为源操作数,结果的8位商在AL中,8位余数在AH中.表示为 (AL) ...
- C# 导出数据至 CSV
有时候将Excel的数据另存到csv文件会出现csv格式错误,以下示例实现将DataTable里面的数据直接保存到csv文件. System.Web.HttpRuntime.Cache["v ...
- splay学习
今天学习了一下spaly..... 感觉除了比较难打,比较难调,但还是很好理解的啊.... 1588: [HNOI2002]营业额统计 Time Limit: 5 Sec Memory Limit: ...
- Mac : 强大的截图
来源:http://irising.me/2011/11/12135/ Mac的截图功能扩展功能很强大的,不要用QQ那个COM+Ctrl+A弱爆了的截图了~ 首先说一下两种截图1.Command+sh ...
- iOS - Swift Range 范围
前言 Range:结构体,这个结构体用来表示一个区间的范围. public struct Range<Element : ForwardIndexType> : Equatable, Co ...
- bootstrap学习笔记<七>(图标,图像)
图像 bootstrap为图像预加载提供了很简洁的样式.(CDN:http://placehold.it/140x140:) PS:该CDN链接后的140x140可以根据网站需要更换合适的尺寸.例如: ...
- Round robin
http://www.computerhope.com/jargon/r/rounrobi.htm Round robin Round robin is a method of distributin ...
- 【Todo】用python进行机器学习数据模拟及逻辑回归实验
参考了这个网页:http://blog.csdn.net/han_xiaoyang/article/details/49123419 数据用了 https://pan.baidu.com/s/1pKx ...
- synchronized与static synchronized 的区别
synchronized是对类的当前实例加锁,防止其他线程同时访问该类的该实例的synchronized块,这里的概念是“类的当前实例”,而static synchronized是对类的所有实例加锁, ...
- Css_加载样式
第一种效果: 代码如下: <div class="loading"> <span></span> <span></span&g ...