[简答题]
阅读以下说明和x86汇编语言代码,根据要求回答问题1至问题3。表6-3所示为 x86系统指令及寄存器说明表。
[说明]
在计算机控制中,有些数据补偿、计算及转换等参数的计算非常复杂,编程难,程序长且运算费时,但是用数表却比较容易实现。
设有256个字节的数据,已按从小到大的顺序存放在以BINTAB为首地址的数据区单元中,现要求查找其中值为126的数据,用对分查表法查询的汇编程序如下:
[汇编程序代码]
DATA SEGMENT
BINTAB
DBl8,25,32,46,56,78,…
;第1~100个数据
DB 90,95,99,100,106,126,…
;第101~200个数据
DB
189,195,197,202,206,216,… ;第201~256个数据
COUNT
EQU 256
FLAG DW
KEY EQU (1)
DATA
ENDS
STAK SEGMENT
STPN DB 20
DUP( )
STAK ENDS
CODE
SEGMENT
ASSUME CS,CODE, DS,DATA, ES:DATA,
SS:STAK
BINSEAT PROC FAR
START, MOV AX,
DATA
MOV DS, AX
MOV ES, AX
LEA
SI, BINTAB
MOV CX,
COUNT
MOV DX, 1
MOV AX, SI
ADD
AX, CX
MOV DI, AX
MOV AL, KEY
LOP0, MOV
BX, SI
ADD BX, DI
SHR BX, 1
CMP
AL, [BX]
JZ
FOUND
PUSH