汇编中的嵌套循环
先貼代碼:
assume cs:code,ds:datadata segmentdb 'ibm ' ;定義一個16個字節的字符串db 'dec 'db 'dos 'db 'vax 'dw 0 ;定義一個內存區域用于保存cx data endscode segmentstart: mov ax,datamov ds,axmov bx,0mov cx,4s0: mov ds:[40H],cxmov si,0mov cx,3s: mov al,[bx+si]and al,11011111bmov [bx+si],alint siloop s ;loop s的執行過程是先執行cx = cx - 1;在判斷cx是否為0若cx為0則進行 跳轉到 s處進行程序的運行add bx,16mov cx,ds:[40H]loop s0mov ax, 4c00Hint 21H code ends end start代碼中使用 內存區域為[40+ds]的地方作為 保存cx的值 以此來達到上層循環的計數器cx不會因為下層的cx值的改變而受到影響
當然也可以使用 dx等通用寄存器來保存cx的值但是這樣做在內部循環中就無法使用dx通用寄存器 相比之下犧牲一個內存跟家的劃算
上面的程序中,使用內存單元來保存數據,可是上面的做法卻有寫麻煩,因為如果需要保存的多個數據的時候,你就需要記住數據存放在哪個內存單元之中,這樣的程序容易引起混亂。
因此一般來說需要暫存數據的時候我們都應該使用棧,來進行數據的暫存。再次的個那個該以上的成需:
總結
- 上一篇: 适用于特殊类型自然语言分类的自适应特征谱
- 下一篇: 作者:徐明泉(1988-),男,百度外卖