汇编语言设计复习题(第7章:子程序设计).docx
文本预览下载声明
1、主程序和所调用的子程序在同一代码段中,子程序的属性应定义为( C )。DX A.TYPE B.WORD C.NEAR D.FAR2、 MOV AL,38HMOV BL,49HCALL SUBOINC ALDEC CL┇SUBO PROCADD AL,BLMOV CL,ALDAARETSUBO ENDP上述程序段运行后,AL=________88H _____________,CL=________80H __________。 CXFX3、FACT PROC PUSH DX MOV DX,AXCMP AX,0 JZ DONE DEC AX CALL FACT MUL DX POP DXRETDONE:MOV AX,1 POP DX RETFACT ENDP若执行以上子程序前,(AX)=5,则子程序完成的功能是:求5!(或求5的阶乘) ,执行该子程序后(AX)= 120 。CXFX4、在一段汇编程序中多次调用另一段程序,用宏指令比用子程序实现起来。(占内存空间大,但速度快)。 DX5、设在DAT单元存放一个-9~+9的字节数据,在SQRTAB数据区中存放了0~9的平方值,请用直接查表法编写一个子程序,在SQRTAB中查找出DAT单元中数据对应的平方值送SQR单元。并写出主程序的调用方式。 CX 数据段如下: DATA SEGMENT DAT DB XXH SQRTAB DB 0,1,4,9,...81 SQR DB? DATA ENDS 答: DATA SEGMENT DAT DB XXH SQRTAB DB 0,1,4,9,…,81 SQR DB? DATA EMDS STACL1 SEGMENT PARA STACK DW 20H DUP(?) STACK1 ENDS CODE SEGMENT ASSUME CS:CODE,DS:DATA,SS:STACK1 START: MOV AX,DATA MOV DS,AX ┇ CALL SUBROT ┇ MOV AH,4CH INT 21H SUBROT PROC PUSH AX PUSH BX LEA BX,SQRTAB MOV AL,DAT TEST AL,80H JNS NEXT NEG AL NEXT: XLAT SQRTAB MOV SQR,AL POP BX POP AX RET SUBROT ENDP CODE ENDS END SRART 6、设在内存单元SQTAB首址开始存放了0~15的平方数表。要求用直接查表法编一程序,求出A单元中给定数(<=15=的平方值送B单元保存。 BC答:DATA SEGMENT SQTAB DB 0,1,4,9,16,25,36,49,64,81 DB 100,121,144,169,196,225 A DB 12 B DB? DATA ENDS CODE SEGMENT ASSUME CS:CODE,DS:DATA START PROC FAR PUSH DX XOR AX,AX PUSH AX MOV AX,DATA MOV DS,AX MOV BX,OFFSET SQTAB MOV AL,A XLAT MOV B,AL RET START ENDP CODE ENDS END START7、FUNCTION MACRO P1,P2,P3 MOV AX,P1 P2 P3 ENDM 请回答下列问题:⑴上面程序段中,MACRO和ENDM是一对伪指令,在 宏 定义中,它们成对出现。 ⑵通过调用语句FUNCTION 100,SUB,AX调用之后,AX寄存器中的内容为99。 CXFX
显示全部