關於進入保護模式解決思路

tags:    時間:2013-12-29 00:41:46
關於進入保護模式
Start                       PROC
                                mov           ax,DSEG
                                mov           ds,ax
                                ;準備要載入到GDTR的偽描述符
                                mov           bx,16
                                mul           bx
                                add           ax,OFFSET   GDT                     ;計算並設置基地址
                                adc           dx,0                                       ;界限已在定義時設置好
                                mov           WORD   PTR   VGDTR.Base,ax

這是教科書上的一小段進入保護模式的代碼,請問如何理解   mov     bx,16和
                                mul           bx
謝謝

------解決方案--------------------
這個是一個計算上的技巧:取出段,左移動4位+偏移=物理地址
------解決方案--------------------
mov ax,DSEG
mov ds,ax
;準備要載入到GDTR的偽描述符
mov bx,16
mul bx
————————————————————————
上面的三行語句是計算DSEG段的物理基地址用的,因為這時候指令還在實模式下運行,
而在實模式下段的物理基地址=段寄存器中的值*16,上面的語句具體對應如下:
mov ax,DSEG ;載入DSEG段到ax中
mov bx,16 ;於bx中載入乘數(16)
mul bx ;將ax中的數與bx(16)相乘,這時dx:ax就是結果,也就是DSEG段的
;物理基地址

推薦閱讀文章

Bookmark the permalink ,來源:互聯網