首页 热点资讯 义务教育 高等教育 出国留学 考研考公

linux0.11中为什么es要位于k边界

发布网友 发布时间:2022-04-22 01:37

我来回答

1个回答

热心网友 时间:2023-09-18 16:11

read_it:
! 测试输入的段值。必须位于内存地址kb边界处,否则进入死循环。清bx寄存器,用于表示当前段内
! 存放数据的开始位置。
!
! es = 0x1000
mov ax,es
!//////////////////////////////////////////////
! test指令,实现将原操作数用于和目的操作数按位"与"运算,但是结果并不放在目的地址。
! test指令会影响到ZF的标志位。如果"与"的结果为0,那么zf=1。
test ax,#0x0fff
!/////////////////////////////////////////////

die: jne die ! es must be at kB boundary
! es的值必须是位于k地址的边界,否则进入死循环。
xor bx,bx ! bx is starting address within segment
! bx是段内偏移地址。
rp_read:
! 判断是否已经全部读入数据。比较当前所读段是否就是系统数据的末端所处的段(endseg),
!如果不是,跳转到下面的ok1_read标号处继续读取数据。否则退出子程序返回。
!
!
mov ax,es
cmp ax,#ENDSEG ! have we loaded all yet?
jb ok1_read
ret

声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com