1、第四章 顺序程序设计参考答案451 单项选择题。1B 2 B 3A 4C 5 D6B 7 A 8C 9C 10B452 多项选择题1ABD 2AD 3ACD 4ABC 5 ABCD6AB 7AC 8CD 9AB 10ABC453 填空题。1 快,少2 易读,易调试3 4,开始,执行,结束4 顺序5 缩短6 DATA(数据段)的段地址7 不相同8 功能,类型9 整个程序的结束,起始地址10分支程序设计,循环程序设计454 程序分析题。1 (1)将变量 A 和 B 中的内容交换(2) (A)=5678H, (B)=1234H2 (1)计算 Z=(X+Y )*4(2) (Z)=48H(3) (Z)=
2、38H,运算后的结果产生溢出3 (1)将 BUF1 和 BUF2 中的非压缩型 BCD 码转换成压缩型 BCD 码送 BUF3(2) (BUF3)=35H4 (1)将 A 中的压缩型 BCD 码转换成非压缩型 BCD 码送 B 和 C(2) (B ) =36H, (C)=35H5 (1)根据 X 中的值查 TAB,将查表所得值送 Y(2) (Y)=20H6 (1)计算 Z=(XY)*16+20)/2(2) (Z)=028AH(650)7 (1)计算 C=(A+5)/B(2) (C ) =0405H(3)高字节表示余数,低字节表示商8 (1)计算 C=(A+B)(A AND B)*2(2) (C
3、 ) =44H9 (1)计算 D=(A*B+5 )/(C6)(2) (D)=0014H, (D+2)=0011H10 (1)将 BUF1 和 BUF2 中的 16 位二进制相加,其结果送 BUF3(2)6AH,47H11 (1)将 BUF1 和 BUF2 中的 4 位压缩型 BCD 码相加,其结果送 BUF3(2)47H,70H12 (1)将 A、B 中的非压缩型 BCD 码相加,其和转换为二进制送 C(2)63H13 (1)将 BUF1 和 BUF2 中的 2 位非压缩型 BCD 码相减,并将相减的结果转换成十进制数输出(2)在显示器上显示 2 和 614 (1)将 A 和 B 中的非压缩型
4、 BCD 码相乘,其结果转换成十进制数输出(2)在显示器上显示 6 和 3。15 (1)将 BUF1 中的 100 个字节内容传送到 BUF2 中。(2)MOVSB 前不能用其它的重复前缀。(3)不行。如果程序在运行前 DF=0,则可以完成相同的功能。如果程序在运行前 DF=1,则它将以BUF1 为首地址,然后从此地址开始向低端地址依次传送数据,不能完成相同的功能。455 程序填空题。1 (1)DATA ENDS(2)MOV DS ,AX(3)MOV BL,10(4)DIV Y(5)INT 21H2 (1)ADD BL,5(2)MUL BL(3)MOV Z+2,DX3 (1)ADD AX,4(
5、2)ADC DX,0(3)IDIV BX(4)MOV S ,DX4 (1)ADD DL,30H(2)INT 21H(3)MOV DL,BUF+1(4)INT 21H5 (1)MOV CX,WORD PTR A+1(2)MOV DX,WORD PTR B+1(3)ADC AL,BL(4)MOV BH,0(5)MOV C+2,AX6 (1)ADD AL,BL(2)MOV C+2,AL(3)ADC AL,BL(4)ADC AH,07 (1)MUL X+2(2)MUL X(3)MUL X+2(4)MUL X8 (1)MOV BX,Y(2)MOV W+4,AX(3)MOV W+2,AX(4)MOV W,
6、AX(5)MOV N,DX9 (1)LEA DX ,U(2)ENDM(3)9(4)ST10 (1)MOV DX,300H(2)OUT DX,AX(3)MOV DX,200H(4)IN AL,DX456 程序设计题。1 DATA SEGMENTX DW ?Y DW ?Z DW ?W DW 2 DUP(0)DATA ENDSCODE SEGMENTASSUME CS:CODE,DS:DATASTART: MOV AX,DATAMOV DS,AXMOV AX,XADD AX,8MUL ZMOV BX,AXMOV CX,DXMOV AX,XMUL YADD AX,BXADC DX,CXMOV W,AX
7、MOV W+2,DXMOV AH,4CHINT 21HCODE ENDSEND START2 DATA SEGMENTX DW ?Y DW ?Z DW ?W DW 2 DUP(0)DATA ENDSCODE SEGMENTASSUME CS:CODE,DS:DATASTART: MOV AX,DATAMOV DS,AXMOV AX,XADD AX,YADD AX,10IMUL ZMOV BX,XADD BX,YIDIV BXMOV W,AXMOV W+2,DXMOV AH,4CHINT 21HCODE ENDSEND START3 DATA SEGMENTST DB 4 DUP( )DATA
8、ENDSCODE SEGMENTASSUME CS:CODE,DS:DATASTART: MOV AX,DATAMOV DS,AXMOV AH,1INT 21HMOV ST+1,ALDEC ALMOV ST,ALADD AL,2MOV ST+2,ALLEA DX,STMOV AH,9INT 21HMOV AH,4CHINT 21HCODE ENDSEND START4 DATA SEGMENTBUF DW ?A DB 0B DB 0C DB 0D DB 0DATA ENDSCODE SEGMENTASSUME CS:CODE,DS:DATASTART: MOV AX,DATAMOV DS,AX
9、MOV AX,BUFAND AL,0FHMOV D,ALAND AH,0FHMOV B,AHMOV AX,BUFMOV CL,4SHR AL,CLMOV C,ALMOV CL,4SHR AH,CLMOV A,AHMOV AH,4CHINT 21HCODE ENDSEND START5 DATA SEGMENTBUF DB ?A DB 0B DB 0C DB 0D DB 4 DUP( )DATA ENDSCODE SEGMENTASSUME CS:CODE,DS:DATASTART: MOV AX,DATAMOV DS,AXMOV AL,BUFAND AL,07HMOV C, ALADD AL,
10、30HMOV D+2,ALMOV AL,BUFMOV CL,3SHR AL,CLAND AL,07HMOV B, ALADD AL,30HMOV D+1,ALMOV AL,BUFMOV CL,6SHR AL,CLMOV A,ALADD AL,30HMOV D,ALEA DX,DMOV AH,9INT 21HMOV AH,4CHINT 21HCODE ENDSEND START6 DATA SEGMENTA DB 35B DB 63C DB 4 DUP( )DATA ENDSCODE SEGMENTASSUME CS:CODE,DS:DATASTART: MOV AX,DATAMOV DS,AX
11、MOV AL,AADD AL,BDAAMOV AH,0ADC AH,30HMOV C,AHMOV AH,ALMOV CL,4SHR AH,CLADD AH,30HMOV C+1,AHAND AL,0FHADD AL,30HMOV C+2,ALLEA DX,CMOV AH,9INT 21HMOV AH,4CHINT 21HCODE ENDSEND START7 DATA SEGMENTA DB 3,5B DB 4,8C DB 4 DUP(0)DATA ENDSCODE SEGMENTASSUME CS:CODE,DS:DATASTART: MOV AX,DATAMOV DS,AXMOV AL,A
12、MUL BAAMMOV BX, AXMOV AL,AMUL B+1AAMADD BH,ALADC AH,0MOV CL,AHMOV AL,A+1MUL BAAMADD BH,ALADC CL,AHMOV CH, 0ADC CH,0MOV AL,A+1MUL B+1AAMADD AL,CLADC AH,CHMOV C,BXMOV C+2,AXMOV AH,4CHINT 21HCODE ENDSEND START8 DATA SEGMENTA DW 3 DUP(?)B DW ?C DW 4 DUP(0)DATA ENDSCODE SEGMENTASSUME CS:CODE,DS:DATASTART
13、: MOV AX,DATAMOV DS,AXMOV AX,A+4MUL BMOV C+6,AXMOV C+4,DXMOV AX,A+2MUL BADD C+4,AXADC DX,0MOV C+2,DXMOV AX,AMUL BADD C+2,AXADC DX,0MOV C,DXMOV AH,4CHINT 21HCODE ENDSEND START9 M MACRO X,YMOV AL,XADC AL,YAAAENDMN MACRO WMOV DL,WADD DL,30HMOV AH,2INT 21HENDMDATA SEGMENTA DB 6,7B DB 8,8DATA ENDSCODE SE
14、GMENTASSUME CS:CODE,DS:DATASTART: MOV AX,DATAMOV DS,AXCLDM A+1,B+1MOV CL,ALM A,BMOV CH, ALM 0,0N ALN CHN CLMOV AH,4CHINT 21HCODE ENDSEND START10 DATA SEGMENTTAB DW 1000 DUP(?)X DW ?Y DW 0DATA ENDSCODE SEGMENTASSUME CS:CODE,DS:DATASTART: MOV AX,DATAMOV DS,AXLEA BX, TABMOV AX,XSHL AX,1ADD BX,AXMOV AX,BXMOV Y ,AXMOV AH,4CHINT 21HCODE ENDSEND START