找出两个数组中的相同元素,并且输出

程序运行:

代码:


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

汇编语言(十五)之找出两个数组中的相同元素相关推荐

  1. js 快速找出两个数组中的不同元素或对象

    js 快速找出两个数组中的不同元素 var arr1 = [0,1,2,3,4,5]; var arr2 = [0,4,6,1,3,9]; function getArrDifference(arr1 ...

  2. JS案例——找出两个数组中的不同元素或对象、数组去重

    一.找出两个数组中的不同元素或对象 1. 数据 var arr1 = ["张瑞淑", "徐海涛", "谢岗岗", "薛鹏" ...

  3. js找出两个数组中不同的元素

    function getNewArr(a,b){const arr = [...a,...b];const newArr = arr.filter(item => {return !(a.inc ...

  4. 高效的找出两个List中的不同元素

    转自同名博文,未知真正出处,望作者见谅 如题:有List<String> list1和List<String> list2,两个集合各有上万个元素,怎样取出两个集合中不同的元素 ...

  5. 找出两列表的共有元素python_python 找出两个dataframe中不同的元素

    pandas从Excel中读取数据,数据格式为dataframe格式 用for循环对进行两个列的数据比较想找出不同的元素时,发现数据是一样的,但是比较结果却是相同和不同的都存在(总之就是不是我以为的效 ...

  6. 如何快速找出找出两个数组中的_看动画学算法之:排序-快速排序

    简介:快速排序也采用的是分而制之的思想.那么快速排序和归并排序的区别在什么地方呢? 归并排序是将所有的元素拆分成一个个排好序的数组,然后将这些数组再进行合并. 而快速排序虽然也是拆分,但是拆分之后的操 ...

  7. python 找出两个dataframe中不同的元素

    pandas从Excel中读取数据,数据格式为dataframe格式 用for循环对进行两个列的数据比较想找出不同的元素时,发现数据是一样的,但是比较结果却是相同和不同的都存在(总之就是不是我以为的效 ...

  8. 找出二维数组中的最小元素

    描述 找出m×n的二维数组中的最小元素,把该元素所在行的各个元素(假设只有一个最小元素)与二维数组的末行元素互换. 输入 第一行包含2个正整数m和n,分别表示二维数组的行数和列数,其中m和n均不超过3 ...

  9. 如何快速找出找出两个数组中的_找出JavaScript中两个数组之间的差异

    LeetCode今天面临的挑战是在数组中查找所有消失的数字. 蛮力 我们的输入包括一个缺少数字的实际数组.我们想将该数组与相同长度的数组进行比较,其中没有遗漏的数字.所以如果给定的话[4,3,2,7, ...

最新文章

  1. 这54个docker命令!你必须懂!
  2. 多路I/O转接服务器——epoll
  3. 普211标准三维EE零基础转CS申
  4. 机器学习:信息熵,基尼系数,条件熵,条件基尼系数,信息增益,信息增益比,基尼增益,决策树代码实现(一)
  5. html标签名缩写与英文全称对照表
  6. semaphore的使用
  7. TPL Dataflow组件应对高并发,低延迟要求
  8. 计算机算法音乐专业,音乐信号分析算法的乐理简说(非音乐专业的乐理)
  9. python while循环true_Python while循环,pause while not,true时继续?
  10. python文件管理包_Python标准库04 文件管理 (部分os包,shutil包)
  11. SpringCloud 从菜鸟到大牛之二 服务注册与发现 Sping Cloud Eureka
  12. [开源]430驱动的12864图形点阵LCD
  13. 电脑有回声_Soundop下载-Soundop正式电脑版
  14. c语言ds12c887,ds12c887引脚图 DS12C887中文资料.doc
  15. 计算机宏应用实例,【电脑技巧】Office word宏命令巧妙应用一例
  16. MySQL-5-MySQL的使用
  17. 机器学习-决策树之分类树python实战(以红酒数据集为例)(二)
  18. C6中休假申请与人事软件的跨服务器数据库整合,已处理。
  19. Unity - 使用Winform制作简易登录器
  20. 【2022年终总结】前端之路第一篇——实习

热门文章

  1. 用python实现流程自动化_Python自动化开发 - 流程控制
  2. vector容器中关于处理从非0位置开始赋值的操作
  3. [MyBatisPlus]代码生成器
  4. MySql :Could not create connection to database server.
  5. [C++STL]stack容器用法介绍
  6. [Qt入门]QTreeWidget控件创建
  7. Linux服务器 常用命令
  8. 经典排序算法(10)——基数排序算法详解
  9. 2019-02-24-算法-进化
  10. HDU 4609 3-idiots(FFT)