发布网友 发布时间: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