(2011.11.1.01)アセンブル_王爽_第09章_勉強のまとめ
(2011.11.1.01)アセンブル_王爽_第09章_勉強のまとめ
この章の内容:
1.転送命令——CSとIPを同時に修正する命令の総称.
2.セグメント内転送——IPのみ修正
——短い転送——IP修正範囲は-128から127である.
——近接転送——IP修正範囲は-32768~32767
3.セグメント間転送——同時にCSとIPを修正する
4.offset機能は、符号を取得するオフセットアドレスである.
5.jmp無条件転送命令は、IPのみを修正してもよいし、CSとIPを同時に修正してもよい
6.jmp short符号[IP]jmp near符号[IP]jmp far符号[CS:IP]jmp 16ビットのreg[IP]
7.jmp word ptrメモリセルアドレス(セグメント内転送)jmp dword ptrメモリセルアドレス(セグメント間転送)
8.jcxz符号((cx)=0の場合、符号に移行して実行します.)
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
; : 9_ _ .asm
; : 、 、 'Welcome to masm'
; :
; , 80 * 25 ,B8000H - BFFFFH 32KB 。
; : , 。
; 25 , 80 , 256 ( , , , )
; 80 , 160 。
; ,( ) ASCII ,( ) 。
; :
; B8000H B8F9FH (25 ,9+F=25-1), , 000 - 09F ,(9F = 10 * 16 - 1)
; :
; 7 6 5 4 3 2 1 0
; BL R G B I R G B
; 1 :BL(7): ,(654) ,I(3) ,(210) ,R(4,2) ,G(5,1) ,B(6,0) .
; :
; DOS 。
; :
; , B8000H - BFFFFH 。
; , mov , loop 。
assume cs:code, ds:data
; ,
data segment
db 'welcome to masm!'
data ends
; ,
code segment
start:
mov ax, data ;
mov ds, ax
mov al, 8 ;
mov ah, 12
mov es, ax
mov bx, 31 ; ,
add bx, 384 ;
mov si, 0 ; 80 , 15
mov di, 0 ; , 40,
; , 40 - 7 = 33, 33 - 1 = 31
; 1 ,
mov cx, 15 ;
; 'welcome to masm!'
putcharin:
mov al, ds:[si] ;
mov es:[bx+di], al
inc di
; , ,
cmp si, 7
jae near ptr c7 ; >=7 , C7
c0:
mov al, 01000000B ;
jmp near ptr endloop
c7:
cmp si, 11
jae near ptr c11
mov al, 00100100B ;
jmp near ptr endloop
c11:
mov al, 01110001B ;
endloop:
mov es:[bx + di], al
inc si
inc di
loop putcharin
mov ax, 4c00h
int 21h
code ends
end start