用中断例程完成loop指令的功能【安装中断例程,设置中断向量表】
生活随笔
收集整理的這篇文章主要介紹了
用中断例程完成loop指令的功能【安装中断例程,设置中断向量表】
小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.
;問題:用中斷例程完成loop指令的功能
;應(yīng)用舉例:在屏幕中斷顯示80個'!'?
1.asm
;安裝中斷例程
assume cs:codecode segment start:mov ax, csmov ds, axmov si, offset lp ;ds:[si] 只指向源地址mov ax, 0mov es, axmov di, 200h ;es:[di] 指向目標(biāo)地址mov cx, offset lpend - offset lp ;cx為傳輸長度cld ;傳輸方向為正rep movsb ;rep 為cx!=0 繼續(xù) 拷貝[movsb];設(shè)置7ch中斷例程的入口地址mov ax, 0mov es, axmov word ptr es:[7ch*4], 200hmov word ptr es:[7ch*4+2], 0mov ax, 4c00hint 21h;7ch中斷例程lp:push bpmov bp, spdec cxjcxz lpertadd ss:[bp+2], bx ;ss:[bp+2] 為 int 7ch 下一條指令的第一個字節(jié) 地址;bx為 s標(biāo)號 到 int 7ch 下一條指令的第一個字節(jié) 地址 的偏移地址lpert:pop bpiretlpend:nopcode ends end start2.asm
;實現(xiàn)loop
assume cs:codecode segment start:mov ax, 0b800hmov es, axmov di, 160*12mov bx, offset s - offset se ;設(shè)置從標(biāo)號se到s的轉(zhuǎn)移位移mov cx, 80s:mov byte ptr es:[di], '!'mov byte ptr es:[di+1], 0ahadd di, 2;loop sint 7ch ;如果(cx)!=0,轉(zhuǎn)移到標(biāo)號s處se:nopmov ax, 4c00hint 21hcode ends end start?
總結(jié)
以上是生活随笔為你收集整理的用中断例程完成loop指令的功能【安装中断例程,设置中断向量表】的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 配置终端服务连接的安全设置
- 下一篇: Good Technology 产品特色