彙編學習歷程 int中斷學習

2021-06-13 19:48:50 字數 1300 閱讀 6051

以下是我學習int中斷的乙個歷程,劫持除法溢位中斷!

assume cs:code,ds:data,ss:stack

code segment

start:

mov ax,data

mov ds,ax

mov ax,stack

mov ss,ax

mov sp,32 ;設定相關暫存器

push ds ;儲存ds段暫存器資料

mov ax,cs

mov ds,ax

mov si,offset _substart ;設定起始資料傳輸位址為cs:_substart

mov ax,0h

mov es,ax

mov di,200h ;設定目的傳送位址為0:200

mov cx,offset _subend - offset _substart ;設定傳送長度

cld ;設定傳送方向

rep movsb ;開始傳送

pop ds

mov ax,0

mov es,ax

mov word ptr es:[0*4],200h

mov word ptr es:[0*4+2],0 ;修改中斷向量表

mov ax,4c00h

int 21h

_substart: ;中斷處理開始

jmp ok

db 'this is a test!','$' ;定義輸出資料

ok:push ax

push bx

push ds ;儲存相關暫存器

mov ax,0

mov ds,ax

mov dx,202h

mov ah,9

int 21h ;呼叫21中斷顯示字串

pop ds

pop bx

pop ax ;恢復堆疊

mov ax,4c00h

int 21h ;程式退出

_subend:nop

code ends

stack segment

dw 16 dup(0)

stack ends

data segment

db 'this is a sssdfasd$'

data ends

end start

外中斷 彙編學習筆記

要及時處理外設的輸入,顯然需要解決兩個問題 外設的輸入隨時可能發生,cpu如何得知?cpu從何處得到外設的輸入?外設的輸入不直接送入記憶體和cpu,而是送入相關的介面晶元的埠中 cpu向外設的輸出也不是直接送入外設,而是先送入埠中,再由相關的晶元送到外設。cpu還可以向外設輸出控制命令,而這些控制命...

彙編學習歷程 記憶體定位與資料拷貝

學習彙編的乙個比較綜合性的程式,將data段中的資料複製到table段中。並計算平均工資。程式如下 assume cs code,ds data,es table,ss stack data segment db 1975 1976 1977 1978 1979 1980 1981 1982 198...

組合語言 關於int中斷問題的思考

看著王爽老師的書 對int,iret,和棧的深入理解 讓用int中斷實現loop迴圈 原版的 assume cs code code segment start mov ax,0b800h mov es,ax mov di,160 12 mov bx,offset s offset se mov c...