汇编语言 循环控制指令
生活随笔
收集整理的這篇文章主要介紹了
汇编语言 循环控制指令
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
循環控制指令是一組增強型的條件轉義指令,用來控制一個程序段的重復執行,重復次數由CX寄存器中的內容決定。這類指令的字節數均為2,第1字節是操作碼,第2字節是8位偏移量,轉移的目標都是短標號。
LOOP 循環指令(Loop) 指令格式:LOOP 短標號指令功能:這條指令用于控制重復執行一系列指令。指令執行前必須事先將重復次數放在CX寄存器中,每執行一次LOOP指令,CX自動減1。如果減1后CX≠0,則轉移到指令中所給定的標號處繼續循環;若自動減1后CX=0,則結束循環,轉去執行LOOP指令之后的那條指令。一條LOOP指令相當于執行一下兩條指令的功能:
DEC CX JNZ 標號以下是
計算 123 * 236 的結果 最后得到結果為 AX = 7164H
以下是
求FFFF:0 到FFFF:F 字節型數據的和 結果存放在DX中
注:數據不允許字母開頭 0FFFFH 0BCH
以下是運行結果:
將FFFF:0~FFFF:F 中的字節型數據 復制到 0:200 - 0:20F中
第一種方式:
assume cs:codecode segmentmov bx, 0mov cx, 16copyDate: mov ax, 0FFFFHmov ds, axmov dl, ds:[bx]mov ax, 0020Hmov ds, axmov ds:[bx], dlinc bxloop copyDatemov ax, 4C00Hint 21Hcode endsend第二種方式
assume cs:code; 數據不允許字母開頭 0FFFFH 0BCHcode segmentmov ax, 0FFFFHmov ds, axmov ax, 0020Hmov es ,axmov bx, 0mov cx, 16copyDate: mov dl, ds:[bx]mov es:[bx], dlinc bxloop copyDate ;標號 地址mov ax, 4C00Hint 21Hcode endsend運行結果:
注:0:200H ~ 0:2FFH 和 0:7E00H ~ 0:FFFFH 屬于可用區域,否則會涉及到內存安全的問題。
向內存0:200 - 0:23F 傳遞數據0~63(3FH)
assume cs:codecode segmentmov ax, 0020Hmov es, axmov bx, 0mov ax, 0mov cx, 64addNumber: mov es:[bx], alinc bx inc alloop addNumbermov ax, 4C00Hint 21Hcode endsend運行結果:
下面的程序功能是將 mov ax, 4C00H 之前的指令復制到內存 0:200
需要考慮:
- 1.復制的是什么?
- 2.從哪里到哪里?
- 3.有多少個字節?
要復制的指令所占的字節
程序執行后:
總結
以上是生活随笔為你收集整理的汇编语言 循环控制指令的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 使用DOSBox编译汇编代码
- 下一篇: 汇编语言 在存储单元中显示字符串