汇编语言典型例子详解_汇编语言常见例子
1、编写程序计算Z=(X*X-3*Y)/2
DATA SEGMENT
X DB 25
Y DB 32
Z DW ?
DATA ENDS
CODE SEGMENT
ASSUME CS:CODE,DS:DATA
START: MOV AX,DATA
MOV DS,AX
MOV AL,X
MUL AL
MOV BX,0
MOV BL,Y
ADD BL,BL
ADC BH,0
ADD BL,Y
ADC BH,0
SUB AX,BX
SHR AX,1
MOV Z,AX
MOV AH,4CH
INT 21H
CODE ENDS
END START
2、编写程序完成多字节相加
DATA SEGMENT
DAT1 DB 5EH,89H
DAT2 DB 40H,OABH
DAT3 DW ?
DATA ENDS
CODE SEGMENT
ASSUME CS:CODE,DS:DATA
START: MOV AX,DATA
MOV DS,AX
MOV SI,0
MOV AL,DAT1[SI]
MOV AL,DAT2[SI]
MOV DAT3[SI],AL
INC SI
MOV AL,DAT1[SI]
ADC AL,DAT2[SI]
MOV DAT3[SI],AL
MOV AH,4CH
INT 21H
CODE ENDS
END START
3、查表求平方和
DATA SEGMENT
TABL DB 0,1,4,9,16,25,36,49
DB 64,81,100,121,144,169,225
XD DB ?
YD DB ?
DATA ENDS
STACK SEGMENT STACK 'STACK'
STA DB 50 DUP (?)
TOP EQU LENGTH STA
STACK ENDS
CODE SEGMENT
ASSUME CS:CODE,DS:DATA,SS:STACK
START: MOV AX,DATA
MOV DS,AX
MOV AX,STACK
MOV SS,AX
MOV SP,TOP
MOV BX,OFFSET TABL
MOV AH,0
MOV AL,XD
ADD BX,AX
MOV AL,[BX]
MOV YD,AL
MOV AH,4CH
INT 21H
CODE ENDS
END START
4、源数据块和目的数据块是否有重叠来决定采用增址还是减址方式传送
DATA SEGMENT
STRG DB 1000 DUP(?)
BLOK1 EQU STRG+5
BLOK2 EQU STRG+10
BLENG EQU 100
DATA ENDS
CODE SEGMENT
ASSUME CS:CODE,DS:DATA,ES:DATA
START: MOV AX,DATA
MOV DS,AX
MOV ES,AX
MOV CX,BLENG
MOV SI,OFFSET BLOK1
MOV DI,OFFSET BLOK2
CLD
PUSH SI
ADD SI,BLENG-1
CMP SI,DI
POP SI
JB GO
STD
ADD SI,BLENG-1
ADD DI,BLENG-1
GO: REP MOVSB
MOV AH,4CH
INT 21H
CODE ENDS
END START
5、找出最大数和最小数
DATA SEGMENT
BUF DB -2,+5,-128
DB +127,80,-70
COUN EQU $-BUF
MAX DB ?
MIN DB ?
DATA ENDS
STACK SEGMENT STACK
STR DB 64H DUP(?)
STACK ENDS
MYCODE SEGMENT
ASSUME DS:MYCODE,DS:DATA,SS:STACK
START: MOV AX,DATA
MOV DS,AX
MOV AX,STACK
MOV SS,AX
MOV SP,LENGTH STR
MOV CX,COUN-1
MOV SI,OFFSET BUF
MOV AL,[SI]
MOV BL,[SI]
INC SI
LOP: CMP AL,[SI]
JGE NEXT1
MOV AL,[SI]
NEXT1: CMP BL,[SI]
JL NEXT
MOV BL,[SI]
NEXT: INC SI
LOOP LOP
MOV MAX,AL
MOV MIN,BL
MOV AH,4CH
INT 21H
MYCODE ENDS
END START
6、三路分支结构程序
DATA SEGMENT
DATX DB -3
DATY DB ?
DATA ENDS
CODE SEGMENT
ASSUME CS:CODE,DS:DATA
START: MOV AX,DATA
MOV DS,AX
MOV AL,DATX
CMP AL,0
JGE BIGER
MOV AL,0FFH
MOV DATY,AL
JMP NEXT
BIGER: JE EQUL
MOV AL,1
MOV DATY,AL
JMP NEXT
EQUL: MOV DATY,AL
NEXT: MOV AH,4CH
INT 21H
CODE ENDS
END START
7、利用跳转实现多分支结构
DATA SEGMENT
ADRTAB DW R0,R1,R2,R3,R4,R5,R6,R7,R8,R9
TEN DB ?
DATA ENDS
STACK SEGMENT PARA STACK 'STACK'
STA DB 100 DUP(?)
STACK ENDS
CODE SEGMENT
ASSUME CS:CODE,DS:DATA,SS:STACK
START: MOV AX,DATA
MOV DS,AX
MOV AX,STACK
MOV SS,AX
MOV SP,LENGTH STA
MOV AH,01
INT 21H
COMPUT: MOV AH,0
AND AL,0FH
ADD AL,AL
MOV BX,OFFSET ADRTAB
ADD BX,AX
MOV AX,[BX]
JMP AX
R0:
R1:
R2:
R3:
R4:
R5:
R6:
R7:
R8:
R9:
MOV AH,4CH
INT 21H
CODE ENDS
END START
8、计算累加和
DATA SEGMENT
SUM DW ?
DATA ENDS
CODE SEGMENT
ASSUME CS:CODE,DS:DATA
START: MOV AX,DATA
MOV DS,AX
MOV AX,0
MOV CX,100
AGAIN: ADD AX,CX
DEC CX
JNZ AGAIN
MOV SUM,AX
MOV AH,4CH
INT 21H
CODE ENDS
END START
9、计算一个数中1的个数
DATA SEGMENT
X DW 31A0H
RESULT DW ?
DATA ENDS
CODE SEGMENT
ASSUME CS:CODE,DS:DATA
START: MOV AX,DATA
MOV DS,AX
MOV CX,0
MOV AX,X
AGAIN: AND AX,AX
JZ EXIT
SHL AX,1
JNC NEXT
INC CX
NEXT: JMP AGAIN
EXIT: MOV RESULT,CX
MOV AH,4CH
INT 21H
CODE ENDS
END START
10、求一列数的累加和
DATA SEGMENT
BLOCK DW 0028H,0FF18H,1005H,7823H,0
DW 0CDABH,0FFFFH,1122H,3344H,7892H
COUN EQU ($-BLOCK)/2
SUM DW ?
DATA ENDS
STACK SEGMENT PARA STACK 'STACK'
STA DW 100 DUP(?)
TOP EQU SIZE STA
STACK ENDS
CODE SEGMENT
ASSUME CS:CODE,DS:DATA,SS:STACK
START: MOV AX,DATA
MOV DS,AX
MOV AX,STACK
MOV SS,AX
MOV SP,TOP
MOV AX,0
MOV SI,OFFSET BLOCK
MOV CX,COUN
LOP: ADD AX,[SI]
ADD SI,2
LOOP LOP
MOV SUM,AX
MOV AH,4CH
INT 21H
CODE ENDS
END START
11、延时程序
TIMEDLY PROC
MOV BX,100
DELAY: MOV CX,5882
DELAYO: LOOP DELAYO
DEC BX
JNZ DELAY
RET
TIMEDLY ENDP
12、冒泡排序法
DATASEG SEGMENT
ARRAY DW 1234H,5437,7FFFH,0FFFFH,0AB55
DW 05FFH,7832H,0,9043H,5634
COUN EQU ($-ARRAY)/2
DATASEG ENDS
STACKSEG SEGMENT PARA STACK 'STACK'
STAPN DB 100 DUP(?)
TOP EQU LENGTH STAPN
STACKSEG ENDS
PROGRAM SEGMENT
ASSUME CS:PROGRAM,DS:DATASEG,SS:STACKSEG
START: MOV AX,DATASEG
MOV DS,AX
MOV AX,STACKSEG
MOV SS,AX
MOV AX,TOP
MOV SP,AX
MOV BL,0FFH
A1: CMP BL,0FFH
JNE A4
XOR BL,BL
MOV CX,COUN-1
XOR SI,SI
A2: MOV AX,ARRAY[SI]
CMP AX,ARRAY[SI+2]
JGE A3
XCHG ARRAY[SI+2],AX
MOV ARRAY[SI],AX
MOV BL,0FFH
A3: INC SI
INC SI
LOOP A2
JMP A1
A4: MOV AH,4CH
INT 21H
PROGRAM ENDS
END START
汇编语言典型例子详解_汇编语言常见例子相关推荐
- 汇编语言典型例子详解_汇编语言例子_汇编语言 举例子
最佳答案 不同的CPU及平台,有不同的汇编语言的(常用的有几十种) 以下是DOS下一个汇编的例子: disp.asm db "hello world!",0dh,0ah,0 D:\ ...
- 汇编语言典型例子详解_数据分析常用的7大思维方法详解
今天老李继续给大家讲解数据分析经典的思维模型,上篇为大家介绍了目标思维.假设思维.溯源思维.逆向思维4个思维:数据分析必备7大经典模型详解!建议收藏!(上) 今天继续给大家介绍结构思维.演绎推理思维. ...
- 汇编语言典型例子详解_从架构到 RTOS 详解 DSP 和 MCU 的区别和联系
▍一.区别 两则的分流造成的主要原因是数字信号处理的简便性,考虑一个数字信号处理的实例,比如有限冲击响应滤波器(FIR).用数学语言来说,FIR滤波器是做一系列的点积.取一个输入量和一个序数向量,在系 ...
- 汇编语言DEBUG命令详解||汇编命令||DEBUG的常用命令:A,U,R,T,D,E,Q 等等
汇编命令 汇编语言Debug命令详解 DEBUG的常用命令:A,U,R,T,D,E,Q 等等 汇编语言DEBUG命令详解 文章目录 汇编语言DEBUG命令详解 R命令的使用 H命令的使用 D命令的使用 ...
- 论vue3.0和vue2.0区别之编程方式及例子详解
系列文章目录 第一章 论vue3.0和vue2.0区别之编程方式及例子详解 第二章 同一台电脑 实现 vue-cli2和vue-cli3同时并存 及 常见命令 第三章 vue3.0项目实战 - Ele ...
- Java 枚举(1): 详解7种常见的用法
目录 用法一:常量 用法二:switch 用法三:向枚举中添加新方法 用法四:覆盖枚举的方法 用法五:实现接口 用法六:使用接口组织枚举 用法七:关于枚举集合的使用 JDK1.5引入了新的类型--枚举 ...
- Spring事务管理详解_基本原理_事务管理方式
Spring事务管理详解_基本原理_事务管理方式 1. 事务的基本原理 Spring事务的本质其实就是数据库对事务的支持,使用JDBC的事务管理机制,就是利用java.sql.Connection对象 ...
- ROW_NUMBER() OVER()函数用法详解 (分组排序 例子多)
ROW_NUMBER() OVER()函数用法详解 (分组排序 例子多) https://blog.csdn.net/qq_25221835/article/details/82762416 post ...
- Java 序列化Serializable详解(附详细例子)
Java 序列化Serializable详解(附详细例子) 1.什么是序列化和反序列化 Serialization(序列化)是一种将对象以一连串的字节描述的过程:反序列化deserialization ...
- 信号与系统考研复习例题详解_小语种日语日本文学复习考研资料加藤周一《日本文学史序说(上)》笔记和考研真题详解...
加藤周一<日本文学史序说(上)>笔记和考研真题详解 目录 序章 日本文学的特征 0.1 复习笔记 第一章 <万叶集>的时代 1.1 复习笔记 1.2 考研真题与典型题详解 第二 ...
最新文章
- 关于C#调用Excel的资源占用问题
- feature map 意义_FeatureMap Viewer以及中心化对统计分布变化的影响讨论
- 状态压缩DP AcWing算法提高课 (详解)
- Hibernate之HQL检索(查询)方式
- java 在界面上画一个时钟_编写程序显示一个时钟 - javaCoder的个人页面 - OSCHINA - 中文开源技术交流社区...
- 深入浅出SQL(三)——表的规范化
- 1185 城市名排序
- iis10 HTTP 错误 500.19 - Internal Server Error
- 图片、照片相似度批量对比
- 网络安全管理与运维服务
- shareX截图工具提示:shareX\Tools\ffmpeg.exe不存在。解决方案2020年
- 互联网、云计算之用户服务
- Python 爬虫数据写入csv文件中文乱码解决以及天眼查爬虫数据写入csv
- 考研计算机专业学校选择,关于学校的选择问题:计算机专业_跨考网
- linux crash,系统崩溃 - crash工具介绍
- Springboot集成Durid远程连接数据库一直报ERROR 1045 (28000): Access denied for user
- 活动.WEBGAME与SNS社区大会
- tkmybatis通用mapper实现在使用Example进行查询的几种方式
- SU山地道路建模,竟如此简单!
- 独立开发变现周刊(第61期): 如何构建一个100万美元年收入开源SaaS的?