📄 a9-2.asm
字号:
;========================================================================
;A9-2.asm
;实验目的: 熟悉编程格式,掌握通过ldt表访问段的编程方法
;实验结果: 可以用dump命令检查数据区,验证程序的运行结果
;编程注意事项: ldt表所在段对应的描述符必须在gdt表中声明,程序起始代码段对应描
; 述符也应该在gdt表中声明
;========================================================================
INCLUDE 386SCD.INC
;----------------------------------------------------------------------------
DSEG SEGMENT use16
;----------------------------------------------------------------------------
GDT LABEL BYTE ;全局描述符表
ID1 Desc <0ffffh,0ffffh,0ffh,0ffh,0ffh,0ffh> ;空描述符
MCode Desc <0ffffh,CSEG,,ATCE,,> ;代码段描述符
LDTable Desc <LDTLen-1,DSEG1,,ATLDT,,> ;局部描述符表段的描述符
;----------------------------------------------------------------------------
GDTLen = $-GDT ;全局描述符表长度
MCode_Sel = MCode-GDT
LDT_Sel = LDTable-GDT ;局部描述符表段的选择子
ID2 Desc <0ffffh,0ffffh,0ffh,0ffh,0ffh,0ffh>
DSEG ENDS ;数据段定义结束
DSEG1 SEGMENT use16
LDT LABEL BYTE ;局部描述符表
DataS Desc <0ffffh,0,11h,ATDW,,> ;源数据段描述符
DataD Desc <0ffffh,Dseg2,,ATDW,,> ;目标数据段描述符
;----------------------------------------------------------------------------
DataS_Sel = DataS-LDT+TIL
DataD_Sel = DataD-LDT+TIL
LDTLen = $-LDT ;局部描述符表长度
ID3 Desc <0ffffh,0ffffh,0ffh,0ffh,0ffh,0ffh>
DSEG1 ENDS
;----------------------------------------------------------------------------
Dseg2 Segment use16
BufLen = 256 ;缓冲区字节长度
Buffer DB BufLen DUP(0) ;缓冲区
;----------------------------------------------------------------------------
Dseg2 ends
;----------------------------------------------------------------------------
CSEG SEGMENT use16 ;16位代码段
ASSUME CS:CSEG
;----------------------------------------------------------------------------
Start PROC
mov ax,LDT_Sel
lldt ax
mov ax, DataS_Sel
mov ds,ax ;加载目标数据段描述符
mov ax, DataD_Sel
mov es,ax ;加载源数据段描述符
cld
xor si,si
xor di,di ;设置指针初值
mov cx,BufLen/4 ;设置4字节为单位的缓冲区长度
repz movsd ;传送
int 0ffh
Start ENDP
;----------------------------------------------------------------------------
CSEG ENDS ;代码段定义结束
;----------------------------------------------------------------------------
END Start
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -