主观

阅读以下说明和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

    PUSHF

   (2) 

    JZ  NFOUND

    POPF

    JL  LESS

    MOV  SI, BX

    JMP  NEXT

LESS,  (3) 

NEXT,  (4) 

    JMP  LOP0

NFOUND: MOV  AX, DX     ;未找到,标志全1送DX

FOUND: MOV  AX, DX

   MOV  FLAG, AX

   RET

BINSEAT ENDP

CODE ENDS

      (5)

请根据试题的要求,将汇编程序代码中(1)~(5)空缺处的内容填写完整。

参考答案
您可能感兴趣的试题
¥

订单号:

遇到问题请联系在线客服

订单号:

遇到问题请联系在线客服