;搜索数组,看是否存在CONST
DATA SEGMENT
ARRAYB DB 2,3,1,8,7FH,-5
COUNT EQU $-ARRAYB ;数组长度
CONST EQU 7FH ;判断数组中是否存在此元素
ADDRES DD 0 ;若存在,存放元素的地址
SCANTIME DW 0 ;若存在,存放搜索次数
DATA ENDS
STACK SEGMENT
DW 100H DUP(?)
STACK ENDS
CODE SEGMENT
ASSUME SS:STACK,DS:DATA,CS:CODE
MAIN:
MOV AX,DATA
MOV DS,AX
MOV ES,AX ;目的串的段基址总是存放在ES
LEA DI,ARRAYB;目的串的偏移首地址存在DI/EDI
MOV CX,COUNT;设置循环次数
MOV AL,CONST;数组元素与AL的内容比较
CLD ;设置DF标志位
OR CX,CX ;设置ZF=0
REPNE SCASB ;若果不相等,则继续搜索
JZ SCANED ;ZF==1表示找到相等的元素
JMP @F ;没找到相等的元素
SCANED:DEC DI
MOV WORD PTR ADDRES,DI
MOV WORD PTR ADDRES+2,ES;把元素地址存入ADDRES
MOV BX,OFFSET ARRAYB
INC DI
SUB DI,BX
MOV SCANTIME,DI;计算搜索次数
MOV DX,SCANTIME
ADD DX,30H
MOV AH,2
INT 21H
@@: MOV AH,4CH
INT 21H
CODE ENDS
END MAIN
;将ES段中名为BLOCK的字存储区清零.
DATA SEGMENT
BLOCK DW 5 DUP(1)
DATA ENDS
STACK SEGMENT
DB 100H DUP(?)
STACK ENDS
CODE SEGMENT
ASSUME CS:CODE,DS:DATA,SS:STACK
MAIN:
MOV AX,DATA
MOV DS,AX
MOV AX,SEG BLOCK
MOV ES,AX
MOV DI,0
MOV CX,LENGTH BLOCK
GOON:
MOV BLOCK[DI],0
ADD DI,TYPE BLOCK
LOOP GOON
MOV AX,4C00H
INT 21H
CODE ENDS
END MAIN
;求Z=|X-Y|.其中X,Y均为无符号数
DATA SEGMENT
X DW 5
Y DW 9
DATA ENDS
STACK SEGMENT
DB 100 DUP(?)
STACK ENDS
CODE SEGMENT
ASSUME SS:STACK,DS:DATA,CS:CODE
MAIN:
MOV AX,DATA
MOV DS,AX
MOV AX,X
SUB AX,Y
JC NEXT
JMP DONE
NEXT:NEG AX
DONE:MOV DX,AX
ADD DX,30H
MOV AH,2
INT 21H
MOV AH,4CH
INT 21H
CODE ENDS
END MAIN
;求X与Y之和并送Z
DATA SEGMENT
;X DW 0E98AH,80AFH,0FD32H,0F68FH
;Y DW 9FD0H,70BAH,3D84H,89FEH
X DW 3 ;为了显示结果,把变量值改为3和5
Y DW 5
Z DW 5 DUP(?)
DATA ENDS
STACK SEGMENT PARA STACK 'STACK'
DB 100H DUP(?)
STACK ENDS
CODE SEGMENT
ASSUME CS:CODE,SS:STACK,DS:DATA
MAIN:
MOV AX,DATA
MOV DS,AX
SUB DI,DI
MOV CX,1
CLC
GOON:MOV AX,X[DI]
ADC AX,Y[DI]
MOV Z[DI],AX
ADD DI,2
LOOP GOON
RCL AX,1
AND AX,1
MOV Z[DI],AX
;显示结果
MOV DL,BYTE PTR Z
ADD DL,30H
MOV AH,2
INT 21H
MOV AH,4CH
INT 21H
CODE ENDS
END MAIN
;输入字符串,然后显示输入的字符串
DATA SEGMENT
BUF DB 50
DB ?
DB 50 DUP('$');总长度为52
CR EQU 0DH
LF EQU 0AH
MESG1 DB 'PLEASE INPUT A STRING:',CR,LF,'$'
DATA ENDS
STACK SEGMENT
DW 100H DUP(?)
STACK ENDS
CODE SEGMENT
ASSUME SS:STACK,DS:DATA,CS:CODE
MAIN:
MOV AX,DATA
MOV DS,AX
MOV DX,OFFSET MESG1
MOV AH,9
INT 21H;提示输入
LEA DX,BUF
MOV AH,10
INT 21H ;等待输入
MOV DL,LF
MOV AH,2
INT 21H;输出换行
LEA DX,BUF+2
MOV AH,9
INT 21H;输出字符串
MOV AH,4CH
INT 21H
CODE ENDS
END MAIN
;删除输入字符串中的'A'字符,然后输出删除后的字符串。
;若字符串中不存在'A',则输出'NOT FOUND'
DATA SEGMENT
BUF DB 50,?,50 DUP('$')
MESSAGE DB 'NOT FOUND',0AH,'$'
FLAG DB 0
DATA ENDS
STACK SEGMENT
DW 100H DUP(?)
STACK ENDS
CODE SEGMENT
ASSUME SS:STACK,DS:DATA,CS:CODE
MAIN:
MOV AX,DATA
MOV DS,AX
MOV DX,OFFSET BUF
MOV AH,10
INT 21H;读入字符串
MOV DL,0AH
MOV AH,2
INT 21H;输出换行符
MOV AX,DATA
MOV ES,AX;段地址存入ES
LEA DI,BUF;偏移首地址
MOV AL,'A';与'A'比较
MOV CX,WORD PTR BUF[1];循环次数
CLD;设置DF标志位0
GOON:
OR CX,CX;设置ZF=0
CMP [BUF+DI],AL
JNZ NEXT;如果不同,进入下一次循环
MOV [BUF+DI],'0'
INC FLAG[0]
NEXT:INC DI
LOOP GOON
OR CX,1
CMP FLAG[0],1
JNZ MES
LEA DX,MESSAGE
MOV AH,9
INT 21H;没找到时输出NOT FOUND
JMP DONE
MES:MOV CL,[BUF+1]
MOV DI,OFFSET BUF+2
SIGN:OR CX,CX
CLD
MOV DL,[BUF+DI]
CMP DL,'0';是0的话不输出
JZ NO;
MOV AH,2
INT 21H
NO: INC DI
LOOP SIGN;输出字符串
DONE:MOV AH,4CH
INT 21H
CODE ENDS
END MAIN
;对395872843948这些0--9的数字进行冒泡排序
DATA SEGMENT
ARRAY DB '395872843948',0DH,0AH,'$'
DATA ENDS
STACK SEGMENT
DB 100H DUP(?)
STACK ENDS
CODE SEGMENT
ASSUME CS:CODE,SS:STACK,DS:DATA
MAIN:
MOV AX,DATA
MOV ES,AX
MOV DS,AX
MOV CX,12;要比较的次数
MOV BX,12;每次要比较的个数
INIT:
MOV DI,0 ;偏移首地址
MOV BX,CX
GOON:
MOV AL,ARRAY[DI]
CMP AL,ARRAY[DI+1]
JG NEXT
XCHG AL,ARRAY[DI+1]
MOV ARRAY[DI],AL;交换
NEXT:INC DI
DEC BX
JNZ GOON;不相等
LOOP INIT;完成一趟排序
MOV DX,OFFSET ARRAY
MOV AH,9
INT 21H;输出排好序的序列
MOV AH,4CH
INT 21H
CODE ENDS
END MAIN
分享到:
相关推荐
PB375 U盘读写汇编程序 性价比超高的U盘读写模块-PB375,兼容CH375读写操作 1. 功能 ● 用于嵌入式系统/单片机读写U 盘、闪盘、闪存盘、USB 移动硬盘、USB 读卡器等。 ● 支持符合USB 相关规范基于Bulk-Only 传输...
1、简单介绍你的课设程序中,程序由几个模块构成?简述其功能。 2、简述改变显示颜色功能如何实现? 3、简述课程设计中多个功能切换的实现? 4、简述键盘处理功能实现? 5、通过课程设计你能体会编写程序要有...
汇编的一些简单的题目,题目和程序代码,公13道题
由于汇编语言程序设计有其自身的体系和特点,我们将它作为专门的一节讨论。 一、 教学目标与考核要求 本课程的教学目标是:在学完本课后能建立起整机概念,它可分为两级: (1) CPU级,它包含三个方面:CPU基本...
Title: 简单的ADuC控制台(A Simple ADuC Console) Description: 使用"Windows超级终端"作为输入设备和显示终端,实现与单片机的交互式操作 Author: Liu Jianying Department: 河北科技大学 材料科学与工程学院 Date: ...
我们的主程序做了灯的闪烁,就不能再干其它的事了,难 道单 片机只能这样工作吗?当然不是,我们能用定时器来实现灯的闪烁的功能。 例1:查询方式 ORG 0000H AJMP START ORG 30H START: MOV P1,#0FFH ;关所灯 MOV ...
在软件程序的设计方面,本设计采用了汇编语言作为编辑语言,作为特殊车辆,采用的是外部中断0即INT0作为它的控制口,我的程序大体的分为四部分,主程序和两个子程序即显示程序和延时程序,和一个宏定义。对于定时器...
在软件程序的设计方面,本设计采用了汇编语言作为编辑语言,其结构简单,语言方便,实现起来比较容易,作为特殊车辆,采用的是外部中断0即INT0作为它的控制口,外部中断1即INT1作为调节通行时间的控制口。程序大体的...
人工操作方式 管理程序阶段 多道程序系统 管理程序是操作系统的雏形,在出现多道程序系统以后,现代操作系统才真正形成和发展。 1.2 操作系统的发展和形成 操作系统12操作系统形成和发展全文共62页,当前为第3页。 ...
块设备驱动程序 291 14.1 存储技术 291 14.2 linux块i/o层 295 14.3 i/o调度器 295 14.4 块驱动程序数据结构和方法 296 14.5 设备实例:简单存储控制器 298 14.5.1 初始化 299 14.5.2 块设备操作 301 14.5.3...
就简单的一句话就交代了 ^_^我们已经写好了GetCRC32函数和GetZHI函数,两个函数返回值为字符串,当然,我们只是做测试,如果真的要,应用到软件中去,我推荐还是用浮点计算,制造隐藏剧情,甚至内联汇编处理,根据CRC32...
《PIC单片机实用教程——提高篇》 pdg 李学海 北京航天航空大学出版社 本书兼顾PIC全系列,共分9章,内容包括:基本概念、PIC16F877硬件概况、指令系统、汇编程序设计、集成开发环境、在线调试工具、定时器、中断...
利用MSP430F149单片机片内的ADC12模块和FLASH...在软件的开发中,用汇编语言开发出了利用MSP430F149单片机片内ADC12模块进行A/D转换的整个程序。结果表明:开发出的数据采集系统具有成本低、结构简单以及可靠性高等特点。
《PIC单片机实用教程-基础篇》 pdf 李学海 北京航天航空大学出版社 本书兼顾PIC全系列,共分9章,内容包括:基本概念、PIC16F877硬件概况、指令系统、汇编程序设计、集成开发环境、在线调试工具、定时器、中断逻辑...
《PIC单片机实用教程-基础篇》 pdf 李学海 北京航天航空大学出版社 本书兼顾PIC全系列,共分9章,内容包括:基本概念、PIC16F877硬件概况、指令系统、汇编程序设计、集成开发环境、在线调试工具、定时器、中断逻辑...
《PIC单片机实用教程-基础篇》 pdf 李学海 北京航天航空大学出版社 本书兼顾PIC全系列,共分9章,内容包括:基本概念、PIC16F877硬件概况、指令系统、汇编程序设计、集成开发环境、在线调试工具、定时器、中断逻辑...
1022 Parallel Expectations 将给定源文件编译为汇编程序 string 1023 University Entrace Examination 排序 1024 calendar game 给出一开始日期,两人按规则报下一日期,报到指定日期的人赢,求给定开始日期后,...
目 录 1 引言 1 2设计原理及要求 2 2.1数字电压表的实现原理 2 2.2数字电压表的设计要求 2 3软件仿真电路设计 3 3.1设计思路 3 3.2仿真电路图 3 3.3设计过程 4 3.4 AT89C51的功能介绍 4 3.4.1简单概述 4 3.4.2主要...