简答题

设计一个程序:其功能是对被测试字中1的个数进行计数。本例作为子程序设计的一个例子,是程序与子程序不在一个代码段,和调用程序与子程序在一个代码段这两种情况都具备的应用实例,也是一个子程序嵌套结构的实例。

正确答案

;源模块 1
PUBIC TWORD ,MASKS ;可供外部使用的公共变量及数据
EXTRN WCNTIS :FAR,OPSYS:FAR ;用到的外部子程序及外部过程
STACK SEGMENT STACK ;堆栈段
DW 32 DUP(?) ;堆栈区
STKE LABEL WORD
STACK ENDS
MAIND SEGMENT ;数据段
MASKS DB 80H ,40H,20H,10H,08H,04H,02H,01H;测试用的屏蔽字
TWORD DW 27A9H ;被测试数
MAIND ENDS
MAINC SEGMENT PUBIC ;主程序码段
MCS:MAINC ,DS:MAIND ,SS:STACK,ES:MAIND 。
MAIN : MOV AX ,STACK ;堆栈段寄存器初始化
MOV SS,AX
MOV SP,OFFSET STKE ;堆栈格外初始化
MOV AX ,MAIND ;数据段初始化
MOV DS,AX
MOV ES,AX ;附加段初始他
CALL FAR PTR WCNTIS ;调用计算 1 个数的外部子程序
CALL FAR PTR OPSYS ;调用返回报作系统的外部过程
MAINC ENDS
END MAIN
;原模块 2
;子程序目的: WCNT 是计等一个字中 1 的个数
;出 口:AX 中放该字的 1 的个数
;所门用于程序: 调用 2 次计等一个字节中 1 个数的手程序 WCNTIS.调用前将
阿 AX 中数分为高低两字节
PUBIC WCNTIS ;可供外部使用的干程序
EXTRN TWORD :WORD,MASKS :BYTE ;用到的外都变量及数据
M SEGMENT PARA STACK ‘STACK’
DB 20 DUP(?)
CNTSEG SEGMENT PUBLIN ;子程序码段
ASSUME CS:CNTSEG,SS:STACK;这里 CS 被赋予新值
WCNTIS PROC FAR ;子程序 WCNTIS 开始
MOV AX ,TWORD ;取入被测试数
CALL NEAR PTR BCNTIS ;计算 AL 中 1 的个数,结果在 CX 中
PUSH CX ;1 的个数人栈
M0V AL ,AH
CALL NEAR PTR BCNTS ;计算 AH 中 1 的个数
POP AX ;取出低字节 1 个数
ADD AX ,CX ;加上高字节 1 个数
RET ;返回
WCNIS ENDP ;子程序 WCNIS 结束
BCNTIS PROC NEAR ;子程序 BCNTIS 开始
;子程序目的:计算字节中 1 的个数
;人口:字节数在 AL 中
;出口: 1 的个数在 CX 中
MOV CX ,0 ;初始化
MOV SI,0 ;第一个选位字节的变址
BL00P:TEST AL,MASKS[SI] ;测试 1 位
JZ BNEXT ;为零,转移
INC CL ;为 1,计数加 1
BNEXT: INC SI ;指向下一位
CMP SI,8 ;测试完?
JNE BL00P ;否,继续
RET ;是,返回
BCNIS ENDP
CNG ENDS
END
;源模块 3
PUBIC OPSYS ;可供外部使用的公共过程
CODE SEGMENT PUBIC
ASSUME CS:CODE
OPSYS PROC FAR
MOV AH ,4CH ;返回 DOS
INT 21H
RET
OPSY END
CODE ENDS
END
被测试字 TWORD 被取入 AX 中,主程序 MAIN 调用于程序 WCNTIS 以计数 AX中 1 的个数 WCNTIS 又调用于程序 BCNTIS 两次, BCNIS 为计数字节中 1 个数的子程序,最后结果在 CX 中。

答案解析

相似试题
  • 现有一个计算类型的程序,它的输入只有一个Y,其范围是—50≤Y≤50。现从输入的角度考虑设计了一组测试用例:—100,100,0。设计这组测试用例的方法是()

    单选题查看答案

  • 已知深度为h的二叉树以一维数组[2h-1]作为其存储结构,请写一个算法,求该二叉树中叶结点的个树。

    简答题查看答案

  • 计算机测试包括对被审单位的内部控制测试和实质性程序。

    判断题查看答案

  • 根据以下Authorware多媒体程序结构。 (1)分析该程序第一个交互图标的部分能够实现的功能。 (2)被打开的第二层程序是图中那个设计图标,实现的是何功能。 (3)框加图标实现的功能是什么?有什么特点?

    简答题查看答案

  • 对于一个含有n个变量的程序,采用边界值健壮性测试方法来测试程序会产生6n+1个测试用例。

    判断题查看答案

  • 下图为一个被测程序流程图,试用判定覆盖方法为它设计足够的测试用例。

    简答题查看答案

  • 下图为一个被测程序流程图,试用条件覆盖方法为它设计足够的测试用例。

    简答题查看答案

  • 下图为一个被测程序流程图,试用判定覆盖方法为它设计足够的测试用例。

    简答题查看答案

  • 设计实验方案,实现下列功能:利用微机原理实验箱上的8255A芯片,实现8个发光二极管的流水灯功能,每次只有一个灯亮,切换时间为1秒,共轮换16遍(即每个灯亮16次)。要求说明硬件的连线方法并给出相应的汇编语言源程序。假定已经有子程序DELAY用于延时1秒。

    简答题查看答案