日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

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

發布時間:2023/12/3 编程问答 29 豆豆
生活随笔 收集整理的這篇文章主要介紹了 汇编语言(十五)之找出两个数组中的相同元素 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

找出兩個數組中的相同元素,并且輸出

程序運行:

?

代碼:

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

?

總結

以上是生活随笔為你收集整理的汇编语言(十五)之找出两个数组中的相同元素的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。