24个汇编实例小程序
汇编语言动画程序设计报告
一、游戏背景介绍
随着信息时代的发展,计算机已经变为我们生活中不可缺少的一部分,它作为我们了解世界的一个窗口的同时还可以让我们从中以最快的速度查找学习资源,休闲之余,更多的人选择玩小型的益智游戏来放松,因为它不仅达到了娱乐的目的,而且对自己的思维有一定的帮助作用,根据大多数人的娱乐放松需求,我做出了一款动画游戏——可控的汽车与机器人。
上了一学期的汇编语言课,让我对汇编语言有了一定的认识。这次课程作业我决定亲自动手用汇编语言编写一个型小程序,熟悉计算机体系结构,加深对汇编语言的了解。DOS 操作系统的功能调用及BIOS的功能调用。进一步了解汇编语言控制计算机硬件的方法,以及如何用汇编语言来实现算法,提高应用汇编语言编程的能力,也加深了自己对一些算法的理解,提高了自己的编程能力。
利用汇编语言编写程序,在屏幕上显示动画,还可以通过键盘上的输入来改变图片的位置,实现动画的运动。动画游戏程序设计的开始屏幕上会出现一辆小车和一个机器人,操作者可自由选择至少两个运动物体(机器人和汽车)在屏幕上运动,一开始汽车与人分别从左向右、从右向左运动,操作者可以通过屏幕上方现实的提示对机器人和小车进行控制。可以通过键盘上的W、A、S、D和上下左右的方向键来分别控制运动机器人和小车通过W,A,S,D 控制方向,同时整个程序包括人机界面控制台和运动中动画的暂停(空格键控制),开始(ENTER键控制),退出键则由ESC键控制,运动加减速动作(“+”控制逐级加速、“—”控制逐级减速)。
程序插图如图1:
图1动画界面示意图
基础的汇编语言小程序
基础的汇编语言小程序
1.1 Hello World !程序(完整段)
(注:所有的标点符号以及空格回车均为英文输入法状态下的,否则报错!)
DATAS SEGMENT
STRING DB ‘Hello World !’,13,10,’$’
DATAS ENDS
CODES SEGMENT
ASSUME CS:CODES,DS:DATAS
START:
MOV AX,DATAS
MOV DS,AX
LEA DX,STRING
MOV AH,9
INT 21H
MOV AH,4CH
INT 21H
CODES ENDS
END START
1.2 Hello World !程序(简化段)
.MODEL SMALL
.DATA
STRING DB’Hello World !’,13,10,’$’
.STACK
.CODE
.STARTUP
LEA DX,STRING
MOV AH,9
INT 21H
.EXIT
END
2.1完整段的求3+5的和
DATA SEGMENT
FIVE DB 5
DATAS ENDS
STACKS SEGMENT
DB 128 DUP(?)
STACKS ENDS
CODES SEGMENT
ASSUME CD:CODES,DS:DATAS,SS:STACKS START:
MOV AX,DATAS
MOV DS,AX
MOV AL,FIVE
ADD AL,3
ADD AL,30H
MOV DL,AL
MOV AH,2
MOV AH,4CH
INT 21H
CODES ENDS
END START
2.2;简化段的求3+5的和.MODEL SMALL
.DATA
(完整版)8086汇编经典例程,推荐文档
建议收藏下载本文,以便随时学习!==========================================
qqq segment
TAB1 DB
'QWERTYUIOPASDFGHJKLZXCVBNM'
TAB2 DB 'qazwsxedcrfvtgbyhnujmikolp'
TAB3 DB ')(*&^%/#@!'
LEN = $-tab1
MSS1 DB 13,10,'Please chose a functioc:',0DH,0AH
DB ' 1--jiami ',0DH,0AH
汇编语言实现浮点小数的乘法
int_over: add al,48; mov dl,al mov ah,02h; int 21h; pop dx; pop ax; mov ax,dx; mov aint,ax; dec cl; jnz shift1;
;//小数点的显示 cmp aflt,0; je all_dis_over; //小数部分为0,显示结束 mov dl,46; mov ah,02h; int 21h; ;//小数部分 mov dl,0; add dl,ca; add dl,cb; mov ca,dl; mov bx,1; dec dl; auto2: mov ax,bx; mov cl,3; shl ax,cl; shl bx,1; add bx,ax; dec dl ; jnz auto2; mov cl,ca;
int_num_over: mov act,dl; //确定整数的位数 auto1: mov ax,bx; mov cl,3; shl ax,cl; shl bx,1; add bx,ax dec dl jnz auto1; mov cl,act; shift1: mov dx,0; mov ax,bx; mov bx,10; div bx; mov bx,ax; mov ax,aint; div bx; push ax; push dx;
符号位 是否为2
是
否 是
符号位 是否为0
汇编语言动画程序的设计报告
?
一、游戏背景介绍
随着信息时代的发展,计算机已经变为我们生活中不可缺少的一部分,它作为我们了解世界的一个窗口的同时还可以让我们从中以最快的速度查找学习资源,休闲之余,更多的人选择玩小型的益智游戏来放松,因为它不仅达到了娱乐的目的,而且对自己的思维有一定的帮助作用,根据大多数人的娱乐放松需求,我做出了一款动画游戏——可控的汽车与机器人。
上了一学期的汇编语言课,让我对汇编语言有了一定的认识。这次课程作业我决定亲自动手用汇编语言编写一个型小程序,熟悉计算机体系结构,加深对汇编语言的了解。DOS操作系统的功能调用及BIOS的功能调用。进一步了解汇编语言控制计算机硬件的方法,以及如何用汇编语言来实现算法,提高应用汇编语言编程的能力,也加深了自己对一些算法的理解,提高了自己的编程能力。
利用汇编语言编写程序,在屏幕上显示动画,还可以通过键盘上的输入来改变图片的位置,实现动画的运动。动画游戏程序设计的开始屏幕上会出现一辆小车和一个机器人,操作者可自由选择至少两个运动物体(机器人和汽车)在屏幕上运动,一开始汽车与人分别从左向右、从右向左运动,操作者可以通过屏幕上方现实的提示对机器人和小车进行控制。可以通过键盘上的W、A、S、D和上下左右的方向键来分别控制运动机器人和小车通过W,A,S,D 控制方向,同时整个程序包括人机界面控制台和运动中动画的暂停(空格键控制),开始(ENTER键控制),退出键则由ESC键控制,运动加减速动作(“+”控制逐级加速、“—”控制逐级减速)。
程序插图如图1:
图1动画界面示意图
单片机汇-编语言程序设计
4-1 汇编程序约定
4-2 汇编程序设计步骤 4-3 顺序程序 4-4 分支程序
4-5 循环程序
2015/10/19
4-6 算术运算程序
1
4-1
汇编程序约定
汇编语言程序: 用汇编语言编写的、完成特定功能的指令序列。 汇编程序:
能将汇编语言源程序转换成机器语言目标程序 的系统软件。
不能使用该汇编语言已经定义了的符号作为标号。 如指令助记符、寄存器符号名称等;
标号后边必须跟冒号。
二、操作码
操作码用于规定语句执行的操作。它是汇编语句 中唯一不能空缺的部分。它由指令助记符表示。
2015/10/19 5
三、操作数
操作数用于给指令的操作提供数据或地址。在 一条汇编语句中操作数可能是空缺的,也可能包括一 项,还可能包括两项或三项。各操作数间以逗号分隔。 操作数字段的内容可能包括以下几种情况:
括号内的部分可以根据实际情况取舍。每个字段之间要用分 隔符分隔,可以用作分隔符的符号有空格、冒号、逗号、分号 等。
如:LOOP:MOV
2015/10/19
A,# 7FH ;A←7FH
4
一、标号
标号是语句地址的标志符号,用于引导对该语句 的非顺序访问。有关标号的规定为:
单片机C语言小程序
单片机C语言小程序
#include
#include
#define V AR XBYTE[0x00] /*V AR为外部位址0000*/
#define read 0 /*93c46读取的识别码READ=0*/
#define write 2 /*93c46写入的识别码WRITE=2*/
#define ewen 4 /*93C46写致能的识别码EWEN=4*/
#define ewds 6 /*93C46写除能的识别码EWDS=6*/
#define cs INT0 /*93C46 CS接脚=8051 RD P3.2*/
#define clk INT1 /*93C46 CLK接脚=8051 WR P3.3*/
#define di T0 /*93C46 DI接脚=8051 T1 P3.4*/
#define d0 T1 /*93C46 DO接脚=8051 T0 P3.5*/
#define LOW 0x49 /*存放测试温度的下限值*/
#define HIGH 0x51 /*存放测试温度的上限值*/
bit FLAG0=0; /*宣告TIMER0响应旗号*/
//外接工业专用温度传感器时,目前设置测量温度为0-99度:
static const char tab[13]={0x3a,0x53,0x6f,0x8a,0xa3, /*0度,10度,20度,30度,40度*/
0xB8,0xC8,0xD5,0xDE,0xE5, /*50度,60度,70度,80度,90度*/
0xEA,0xEE}; /*100度,110度*/
汇编语言程序设计ppt课件
2. 80C51汇编程序设计中常用的伪指令
❖ (1)ORG 汇编起始指令
❖ 规定目标程序的起始地址,格式如下:
标号 操作码
操作数
❖
ORG
表达式(exp)必须为16位地址
❖ (2) EQU 赋值指令
❖ 把操作数段中的地址或数据赋值给标号,格式如下:
❖ 标号 操作码
操作数
❖ 字符名称 EQU 数或汇编符号
(8)DS定义存储空间指令
功能:从指定地址开始保留DS之后表达式的值所 规定的存储单元。
格式: 标号 操作数 DS 表达式
Βιβλιοθήκη Baidu
例:P105 例7
8
5.1.3 汇编语言程序设计步骤
一 . 分析工作任务、确定方案和计算方法 二 . 了解应用系统的硬件配置、性能指标。 三 . 建立系统数学模型,确定控制算法和操作步骤。 四 . 画程序流程图
DB 0AH,0BH,20
则 (1000H)=34H (1002H)=41H
(1001H)=49H (1003H)=42H
(1004H)=0AH
(1005H)=0BH
(1006H)=14H 6
(4) DW 定义字指令 定义程序存储器中存放的若干个字的数据或ASCII 码字符16位常数表 格式 DW<16位数据表>。
;2X→A
;重新把X装入A
第4章 汇编 语言程序设计
4.3.2 查表程序设计
4.3.3 关键字查找程序设计 4.3.4 数据极值查找程序设计 4.3.5 数据排序程序设计 4.3.6 分支转移程序设计
4.3.7 循环程序设计
3
内容概要
汇编语言能直接控制单片机硬件的编程语言。 因此,要求程序设计者要 “软、硬结合” 。 本章介绍汇编语言程序设计的基本知识,以及一些基本的 程序设计。 4.1 汇编语言程序设计概述 程序是指令的有序集合。
TABEL:DS 10
表示从TABEL代表的地址开始,保留10个连续的地址单 元。又例如:
ORG DS 2000H 10 H
21
表示从2000H地址开始,保留16个连续地址单元。
注意:DB、DW和DS命令只能对程序存储器有效,不能对
数据存储器使用。 7.BIT 位定义命令 用于给字符名称赋以位地址,位地址可以是绝对位地 址,也可是符号地址。例如: QA BIT P1.6
功能是把P1.6的位地址赋给变量QA。
4.2
汇编语言源程序的汇编
“汇编”?汇编可分为手工汇编和机器汇编两类。
22
4.2.1
手工汇编
通过查指令的机器代码表(表3-2),逐个把助记符指令 “翻译”成机器代码,再进行调试和运行。 手工汇编遇到相对转移偏移量的计算时,较麻烦,易出 错,只有小程序或受条件限制时才使用。实际中,多采用“ 汇 编程序”来自动完成汇编。
汇编语言程序设计(5)
例: ORG 2000H MOV SP, #60H MOV R0, #2FH MOV R2, # 0FFH
ORG伪指令说明其后面程序的目标代码在存储器中存放的 起始地址是2000H,
存储器地址
2000H
75 81 60
2003H
78 2F
2005H
7A FF
12
第 4 章 汇编语言程序设计简介 二、等值指令EQU 指令格式: 字符名称 EQU 功能: 使指令中的字符名称等价于给定的数字或汇编符号。 使用等值指令可给程序的编制、调试、修改带来方便:
交叉汇编的原理类似于手工汇编,在汇编程序中通常存 入了两张表,即MCS-51单片机的指令代码表和伪指令表。汇 编程序通常通过两次扫描完成汇编,第一次扫描查找源程序中 每条指令的机器代码,第二次扫描完成地址偏移量的计算,汇 编后生成目标文件和列表文件。这是目前应用较广的汇编方法。
9
第 4 章 汇编语言程序设计简介
第 4 章 汇编语言程序设计简介
第4章 汇编语言程序设计简介
4.1 汇编语言概述 4.2 汇编语言程序设计 4.3 汇编程序设计实例
1
第 4 章 汇编语言程序设计简介
4.1 汇编语言概述
4.1.1 程序设计语言的分类及特点 能够完成一定功能的指令序列称为程序,用来设计计算
机程序的语言称为程序设计语言,按照语言的结构及功能程 序设计语言可分为:机器语言、汇编语言和高级语言。
常用的结构计算小程序
支撑系统---ST梁,墙面斜撑,风拉杆计算
工型拉(压)弯构件强度及稳定性校核计算
箱形拉(压)弯构件强度及稳定性校核计算
工字型、T型、箱型截面斜撑计算
框架柱计算长度(有侧移及无侧移)
砼-钢组合梁计算
钢梁(工字型、箱型)受扭计算
工型梁加劲肋计算 地震反映谱 高强度螺栓连接计算 格构式双工截面参数计算(I I) 实腹式双工截面参数计算(十字) 实腹式工型组合截面参数计算(|—I) 箱型(工型帖板)截面参数计算 简支梁温度变化引起内力 钢梁受扭计算 梁柱固结计算 次梁与主梁铰接计算程式 钢管混凝土柱计算 摩擦型高强螺栓拉剪连接计算
结构常 用计算程序汇编
钢筋混凝土结构
钢结构
பைடு நூலகம்
矩形截面单双筋--抗弯抗剪验算
单筋T形截面--抗弯验算
深梁与短梁--抗弯验算
矩形截面受弯剪扭--抗扭验算
雨蓬板配筋裂缝计算
雨蓬梁配筋裂缝计算
软弱下卧层验算
地下室外墙计算 单(双)柱锥形基础计算 墙高厚比验算 灌注桩单桩竖向承载力计算 柱体积配箍率计算 筏基底板冲切计算 楼面荷载计算 楼梯间荷载计算 砌体梁端局部受压计算 双柱条基计算 螺旋楼梯计算 板式楼梯计算 一字形剪力墙配箍计算 L形剪力墙配箍计算 无翼墙L形剪力墙配箍计算 牛腿计算
常用资料
双吊钩桥式起重机参数资料 LH型电动葫芦起重机参数资料
第3章汇编语言程序格式
11
(4)类别在引号中给出连接时组成段组的类型 名。当连接程序组织段时,并不能把相同类 别的段合并起来,但可将所有的同类别段相 邻分配 段类别可以是任意名称,但必须位于单引号 中 大多数MASM程序使用 'code'、'data'和'stack’ 来分别指名代码段、数据段和堆栈段,以保 持所有代码和数据的连续
24
3.2.2 程序开始和结束伪操作
程序开始可用Name和TITLE作为模块的名字。 NAME的格式:NAME 模块名 汇编语言将以给出的”模块名”作为模块的名 字。 TITLE的格式:TITLE 标题 TITLE伪操作可指定列表文件中的每一页上打 印的标题 END表源程序结束的伪操作,格式为:END [标号] 用来指示汇编程序MASM到此结束汇编过程。 源程序的最后必须有一条END语句。可选的标号用 于指定程序开始执行点,连接程序将据此设置CS : 25 IP值
(3)使用类型是支持32位段而设置的属性,用来 说明使用16位寻址方式还是32位寻址方式 对于16位x86 CPU来说,它默认是16位段, 即USE16 而对于汇编32位x86 CPU指令时,它默认 采用32位段,即USE32;但可以使用USE16指 定标准的16位段 编写运行于实地址方式(8086工作方式)的汇 编语言程序,必须采用16位段
4
汇编语言语句实例 MOV CX,0 ;传送指令,具有2个操作数
汇编语言程序设计实验小结
汇编语言程序设计实验小结在本次汇编语言程序设计实验中,我学到了很多关于汇编语言的知识和技能。通过实验,我不仅加深了对汇编语言的理论理解,还掌握了如何利用汇编语言编写并调试程序的实际操作技巧。以下是我在实验中得出的一些总结点:
1. 在编写汇编语言程序时,要注意代码的规范和紧凑性。代码规范可以避免一些常见的错误,并且使得程序的可读性更强;代码紧凑性则可以减小程序的体积和复杂度,提高程序的执行效率。
2. 调试汇编语言程序时,要善于使用调试工具。例如,我们可以使用单步执行、断点调试等功能,逐一排查代码中的错误点。
3. 在编写汇编语言程序时,要注意对内存的访问控制。内存访问控制的不当会导致内存泄露、数据错乱等问题,因此需要谨慎处理。
4. 另外,在实践中我还发现,为了更好的学习汇编语言,可以多观察和分析汇编代码,深入理解其中的奥秘和原理。同时,还可以参考一些优秀的汇编语言程序设计实例,帮助自己更好的掌握汇编编程技巧。
总的来说,本次汇编语言程序设计实验是我学习汇编语言的一次很好的实践机会。通过这次实验的学习,我不仅可以掌握基本的汇编语言编程技能,而且还能够通过实际实践的经验教训,提升自己的汇编语言调试和解决问题的能力。
微信小程序数据分析教程(汇编)
微信小程序数据分析教程
功能概述
小程序数据分析,是面向小程序开发者、运营者的数据分析工具,提供关键指标统计、实时访问监控、自定义分析等,帮助小程序产品迭代优化和运营。主要功能如下:
概况:提供小程序关键指标趋势以及top页面访问数据,快速了解小程序发展概况;
访问分析:提供小程序用户访问来源、规模、频次、时长、深度以及页面详情等数据,具体分析用户新增和活跃情况;
实时统计:提供小程序实时访问数据,满足实时监控需求;
自定义分析:配置自定义上报,精细跟踪用户在小程序内的行为,结合用户属性、系统属性、事件属性进行灵活多维的事件分析和漏斗分析,满足小程序的个性化分析需求;
留存分析:提供小程序新增用户和活跃用户的留存数据,分析用户留存与流失,功能正在开发中;
用户画像:提供小程序的用户画像数据,包括用户地域、性别、平台类型、设备、网络类型等,功能正在开发中。
概况
昨日概况
查看昨日关键用户指标,反映小程序昨日用户活跃概况,以及对比一天前、一周前、一月前的增长率。
趋势概况
查看关键指标的趋势,包括累计访问用户数、打开次数、访问次数、访问人数、新访问用户数、分享次数、分享人数、人均停留时长、次均停留时长(参见【指标解释】),可选择时间进行对比。
Top页面
查看用户最常访问的页面,以及页面访问次数和占比(单个页面访问次数/总访问次数),
区分入口页和受访页。其中,入口页指用户进入小程序访问的第一个页面;受访页指用户访问的每一个页面。
实时统计
查看实时用户访问数据,可以选择所有页面或单个页面为分析对象,可以选择具体的时间粒度(1分钟、5分钟、10分钟、30分钟、1小时),可以按时间进行对比。为了更好地查看数据趋势,时间粒度为分钟时,请注意合理选择时间范围。
汇编语言小程序例子
盛年不重来,一日难再晨。及时宜自勉,岁月不待人。
1.编写统计AX中1、0个数的源程序。1的个数存入CH,0的个数存入CL。
CODE SEGMENT
ASSUME CS:CODE
START: MOV CX, 0
MOV DX,17
AA1: SUB DX, 1
JZ AA3
SHL AX, 1
JNC AA2
INC CH
JMP AA1
AA2: INC CL
JMP AA1
AA3: MOV AH,4CH
INT 21H
CODE ENDS
END START
2.编写比较两个字符串STRING1和STRING2所含字符是否完全相同的源程序,若相同则显示“MATCH”,若不相同则显示“NO MATCH”。
程序:
DATA SEGMENT
R1 DB 'MATCH',0AH,0DH
R2 DB 'NO MATCH',0AH,0DH STRING1 DB 'XXXXX'
N1 EQU $-STRING1
STRING2 DB 'YYYYY'
N2 EQU $-STRING2
DATA ENDS
CODE SEGMENT
ASSUME CS:CODE,DS:DATA START: MOV AX,DATA
MOV DS,AX
MOV AX,N1
CMP AX,N2
JNZ AA1
ADD AX,1
LEA SI,STRING1
LEA DI,STRING2
AA2: MOV BL,[SI]
MOV BH,[DI]
INC SI
INC DI
SUB AX,1
JZ AA3
CMP BL,BH JZ AA2
JMP AA1
AA3: LEA BX,R1 MOV CX,7 AA4: MOV DL,[BX] INC BX
用IDA反汇编个STM32小程序
本帖最后由yjmwxwx 于2014-12-11 00:12 编辑
想仿制别人的一款产品,但是只有固件没有源码无法修改程序,于是研究了一下反汇编。下面把过程贴出来,方法对错我也不知道,我小学文化不懂英文操作这款软件有困难。
目标某开发的一个LED小程序
把HEX文件转为BIN文件
打开IDA
打开刚刚的BIN文件
选择ARM:
然后还有个高级选项选择Cortex-M (忘记截图)
ROM地址
反汇编
开头的是数据,第一个是站顶,第二个是复位向量,我们从他解开程序按D健转换
跳转到复位向量指向的地址
按C键转换成代码
反汇编完成,观看程序结构
2014-12-10 23:31 上传下载附件(72.81 KB)
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
24个汇编小程序
题目列表:
逆序输出字符串“BASED ADDRESSING”
从键盘上输入两个数,分别放到x,y单元,求出它们的和
试编写一段程序,要求在长度为10h的数组中,找出大于42h的无符号数的个数并存入地址为up开始区域,找出小于42h的无符号数的个数并存入地址为down的开始区域
键盘输入一段字符串,其中小写字母以大写字母输出,其他字符不变输出
从键盘上就收一个小写字母,找出它的前导字符和后续字符,在顺序显示这三个字符
把一个包含20个数据的数组M分成两组:正整数组P和负整数组N,分别把这两个数组中的数据的个数显示出来
求出首地址为data的100个字数组中的最小偶数,并把它放在ax中
输入两船字符串string1和string2,并比较两个字符串是否相等,相等就显示“match”,否则显示“no match”
从键盘接收一个四位的十六进制数,并在终端显示与它等值的二进制数
从键盘输入一系列以$为结束符的字符串,然后对其中的非数字字符计数,并显示计数结果
有一个首地址为mem的100个字的数组,试编程序删除数组中所有为零的项,并将后续项向前压缩,最后将数组的剩余部分补上零
从键盘上输入一串字符(用回车键结束,使用10号功能调用)放在string中,是编制一个程序测试字符串中是否存在数字。如有,则把cl的第五位置1,否则将该位置置0
在首地址为data的字数组中,存放了100h的16位字数据,试编写一个程序,求出平均值放在ax寄存器中,并求出数组中有多少个数小于此平均值,将结果放在bx寄存器中(f分别考虑有符号数、无符号数情况)
一直数组A包含15个互不相等的整数,数组B包含20个互不相等的整数。试编制一个程序,把既在A中又在B中出现的整数存放于数组C中
设在A、B和D单元中分别存放着三个数。若三个数都不是0,则求出三个数的和并存放在S 单元,若其中有一个数为0,则把其它两个单元也清零。请编写此程序
从键盘输入一系列字符(以回车键结束),并按字母、数字和其他字符分类计数,最后显示这三类的计数结果
已定义两个整数变量A和B,试编写程序完成以下功能
(1)若两个树种有一个是奇数,则将奇数存入A中,偶数存入B中
(2)若两个数均为奇数,则将两个数加1后存回原变量
(3)若两个数均为偶数,则两个变量均不变
写一段子程序skiplines,完成输出空行的功能。空行的行数由用户在主程序过键盘输入,并将行数放在ax寄存器中
设有10个学生成绩分别是76, 69,84,73,88,99,63,100和80。试编写一个子程序统计60-69分,70-79分,80-89分,90-99分和100分的人数,并分别放到S6,S7,S8,S9,S10单元中
编写子程序嵌套结构的程序,把整数分别用二进制和八进制显示出来
在D盘根目录建立一个文件,第一次向文件写入“123456”六个字符,第二次增加“abcdefg”几个字符
从键盘上输入文本文件:“d:\”的容后,然后新建一个文件“d:\”,把前一个文件的所有容复制到后一个文件中
从键盘上输入一个十进制数,以十六进制数显示出来。要求子程序用寄存器参数传送方法
试编制一个程序,把bx寄存器中的二进制数用十六进制数的形式在屏幕上显示出来
代码:
1.逆序输出字符串“BASED ADDRESSING”
s1 segment stack ;定义栈段s1
dw 100 dup() ;定义栈空间为100
top label word ;top指向栈顶
s1 ends
s2 segment ;定义数据段s2
s db 'BASED ADDRESSING','$' ;定义字符串s
S2 ends
s3 segment ;定义代码段s3
assume cs:s3,ds:s2,ss:s1
main proc far
mov ax,s1 ;栈初始化——
mov ss,ax
lea sp,top ;——栈初始化
mov ax,s2 ;数据段初始化——
mov ds,ax ;——数据段初始化
mov si,15
l: mov dl,s[si] ;dl获取字符串s的最后一个(从零开始的第十五个字符) mov ah,2 ;调用int 21h 2号功能输出dl上的值
int 21h
dec si ;寄存器减一,准备获取下一个字符
cmp si,0
ja l
mov ah,4ch ;终止
int 21h
main endp
s3 ends
end main
2.从键盘上输入两个数,分别放到x,y单元,求出它们的和
s1 segment stack
dw 100h dup()
top label word
s1 ends
s2 segment
h1 db 'Please input x:','$' ;提示输入
h2 db 'Please input y:','$' ;提示输入
h3 db 'z=x+y:','$' ;提示输出
crlf db 0dh,0ah,24h ;定义回车换行
x dw
y dw
s2 ends
s3 segment
assume cs:s3,ds:s2,ss:s3
main proc far
mov ax,s1 ;初始化——
mov ss,ax
lea sp,top
mov ax,s2