汇编语言(十五)之找出两个数组中的相同元素
找出两个数组中的相同元素,并且输出
程序运行:
代码:
datas segmentA dw -1,-2, 3, 4, 5, 6, 7, 8, 9, 10,-11, 12, 13, 14, 15ACount dw ($-A)/2B dw -1, 2,-3, 4,-5, 6,-7, 8, 9,-10, 11,-12, 13,-14, 15,16,17,18,19,0BCount dw ($-B)/2C1 dw 30 dup(?)C1Count dw 0ouputlengthOfC1 db 'length of C1=$'ouputC1 db 0dh,0ah,'the same elemt(C1):$'datas endsstacks segment stackdb 100h dup(?)stacks endscodes segmentassume cs:codes,ds:datas,ss:stacks
main proc far
start:push dsmov ax,0hpush axmov ax,datas ;初始化dsmov ds,axmov cx,ACountmov bx,0 ;数组A的索引mov di,0 ;di数组C1的索引s: mov ax,A[bx] ;将数组A的元素移至axcall saveSameElemt ;保存ax与B中相同的元素add bx,type A ;数组A的索引移至下一个元素loop sshr di,1 ;di为数组C1的长度mov C1Count,di ;保存数组C1的长度lea dx,ouputlengthOfC1mov ah,9int 21hmov ax,C1Countcall unsignedPrintlea dx,ouputC1mov ah,9int 21hmov cx,C1Countmov bx,0s1:mov ax,C1[bx]call printmov dl,' 'mov ah,2int 21hadd bx,type C1 loop s1 retmain endpsaveSameElemt proc near;保存寄存器push cxmov cx,BCount mov si,0 ;数组B的索引save:cmp ax,B[si] ;比较ax与数组B的元素jne notEqual ;若不等,则跳转mov C1[di],ax ;若相当,则保存于数组C1add di,type C1 ;数组C1下标移至下一个元素notEqual:add si,type B ;数组B的下标移至下一个元素loop save;恢复寄存器pop cx ret
saveSameElemt endpprint proc near;ax=source;保存寄存器push cx push dxpush bxcmp ax,0 ; 比较ax与0大小jge notNegative ;若非0,则跳转push ax ;若为0,保存axmov dl,'-' ;输出负号mov ah,2 int 21hpop ax ;恢复axneg ax ;取ax的绝对值notNegative:mov bx,10 ;除数mov cx,0 ;计数器,记录十进制数的位数ps:mov dx,0 ;无符号扩展div bx ;除10push dx ;保存余数inc cx ;计数器加1cmp ax,0h ;比较ax与0大小jnz ps ;若不等,则跳转ps1:pop dx ;恢复余数add dl,30h ;将数字转换为数字字符mov ah,2 ;输出数字字符int 21hloop ps1 ;恢复寄存器pop bxpop dxpop cxret print endpunsignedPrint proc near;ax=source;保存寄存器push cx push dxpush bxmov bx,10 ;除数mov cx,0 ;计数器,记录十进制数的位数ps:mov dx,0 ;无符号扩展div bx ;除10push dx ;保存余数inc cx ;计数器加1cmp ax,0h ;比较ax与0大小jnz ps ;若不等,则跳转ps1:pop dx ;恢复余数add dl,30h ;将数字转换为数字字符mov ah,2 ;输出数字字符int 21hloop ps1 ;恢复寄存器pop bxpop dxpop cxret unsignedPrint endpcodes endsend main
汇编语言(十五)之找出两个数组中的相同元素相关推荐
- js 快速找出两个数组中的不同元素或对象
js 快速找出两个数组中的不同元素 var arr1 = [0,1,2,3,4,5]; var arr2 = [0,4,6,1,3,9]; function getArrDifference(arr1 ...
- JS案例——找出两个数组中的不同元素或对象、数组去重
一.找出两个数组中的不同元素或对象 1. 数据 var arr1 = ["张瑞淑", "徐海涛", "谢岗岗", "薛鹏" ...
- js找出两个数组中不同的元素
function getNewArr(a,b){const arr = [...a,...b];const newArr = arr.filter(item => {return !(a.inc ...
- 高效的找出两个List中的不同元素
转自同名博文,未知真正出处,望作者见谅 如题:有List<String> list1和List<String> list2,两个集合各有上万个元素,怎样取出两个集合中不同的元素 ...
- 找出两列表的共有元素python_python 找出两个dataframe中不同的元素
pandas从Excel中读取数据,数据格式为dataframe格式 用for循环对进行两个列的数据比较想找出不同的元素时,发现数据是一样的,但是比较结果却是相同和不同的都存在(总之就是不是我以为的效 ...
- 如何快速找出找出两个数组中的_看动画学算法之:排序-快速排序
简介:快速排序也采用的是分而制之的思想.那么快速排序和归并排序的区别在什么地方呢? 归并排序是将所有的元素拆分成一个个排好序的数组,然后将这些数组再进行合并. 而快速排序虽然也是拆分,但是拆分之后的操 ...
- python 找出两个dataframe中不同的元素
pandas从Excel中读取数据,数据格式为dataframe格式 用for循环对进行两个列的数据比较想找出不同的元素时,发现数据是一样的,但是比较结果却是相同和不同的都存在(总之就是不是我以为的效 ...
- 找出二维数组中的最小元素
描述 找出m×n的二维数组中的最小元素,把该元素所在行的各个元素(假设只有一个最小元素)与二维数组的末行元素互换. 输入 第一行包含2个正整数m和n,分别表示二维数组的行数和列数,其中m和n均不超过3 ...
- 如何快速找出找出两个数组中的_找出JavaScript中两个数组之间的差异
LeetCode今天面临的挑战是在数组中查找所有消失的数字. 蛮力 我们的输入包括一个缺少数字的实际数组.我们想将该数组与相同长度的数组进行比较,其中没有遗漏的数字.所以如果给定的话[4,3,2,7, ...
最新文章
- 这54个docker命令!你必须懂!
- 多路I/O转接服务器——epoll
- 普211标准三维EE零基础转CS申
- 机器学习:信息熵,基尼系数,条件熵,条件基尼系数,信息增益,信息增益比,基尼增益,决策树代码实现(一)
- html标签名缩写与英文全称对照表
- semaphore的使用
- TPL Dataflow组件应对高并发,低延迟要求
- 计算机算法音乐专业,音乐信号分析算法的乐理简说(非音乐专业的乐理)
- python while循环true_Python while循环,pause while not,true时继续?
- python文件管理包_Python标准库04 文件管理 (部分os包,shutil包)
- SpringCloud 从菜鸟到大牛之二 服务注册与发现 Sping Cloud Eureka
- [开源]430驱动的12864图形点阵LCD
- 电脑有回声_Soundop下载-Soundop正式电脑版
- c语言ds12c887,ds12c887引脚图 DS12C887中文资料.doc
- 计算机宏应用实例,【电脑技巧】Office word宏命令巧妙应用一例
- MySQL-5-MySQL的使用
- 机器学习-决策树之分类树python实战(以红酒数据集为例)(二)
- C6中休假申请与人事软件的跨服务器数据库整合,已处理。
- Unity - 使用Winform制作简易登录器
- 【2022年终总结】前端之路第一篇——实习
热门文章
- 用python实现流程自动化_Python自动化开发 - 流程控制
- vector容器中关于处理从非0位置开始赋值的操作
- [MyBatisPlus]代码生成器
- MySql :Could not create connection to database server.
- [C++STL]stack容器用法介绍
- [Qt入门]QTreeWidget控件创建
- Linux服务器 常用命令
- 经典排序算法(10)——基数排序算法详解
- 2019-02-24-算法-进化
- HDU 4609 3-idiots(FFT)