分享
分销 收藏 举报 申诉 / 61
播放页_导航下方通栏广告

类型微机接口答案.doc

  • 上传人:1587****927
  • 文档编号:1355915
  • 上传时间:2024-04-23
  • 格式:DOC
  • 页数:61
  • 大小:807.50KB
  • 下载积分:14 金币
  • 播放页_非在线预览资源立即下载上方广告
    配套讲稿:

    如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。

    特殊限制:

    部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。

    关 键  词:
    完整 word 微机 接口 答案
    资源描述:
    第三章 1. 分别说明下列指令的源操作数和目的操作数各采用什么寻址方式。 (1)MOV AX,2408H (2)MOV CL,0FFH (3)MOV BX,[SI] (4)MOV 5[BX],BL (5)MOV [BP+100H],AX (6)MOV [BX+DI],’$’ (7)MOV DX,ES:[BX+SI] (8)MOV VAL[BP+DI],DX (9)IN AL,05H (10)MOV DS,AX 答:(1)立即数,寄存器 (2)立即数,寄存器 (3)寄存器间接,寄存器 (4)寄存器,寄存器相对 (5)寄存器,寄存器相对 (6)立即数,基址变址 (7)基址变址,寄存器 (8)寄存器,相对基址变址 (9)直接端口寻址,寄存器 (10)寄存器,寄存器 2. 已知:DS=1000H,BX=0200H,SI=02H,内存10200H~10205H 单元的内容分别为10H, 2AH,3CH,46H,59H,6BH。下列每条指令执行完后AX 寄存器的内容各是什么? (1)MOV AX,0200H (2)MOV AX,[200H] (3)MOV AX,BX (4)MOV AX,3[BX] (5)MOV AX,[BX+SI] (6)MOV AX,2[BX+SI] 答:(1)0200H (2)2A10H (3)0200H (4)5946H (5)463CH (6)6B59H 3. 设DS=1000H,ES=2000H,SS=3500H,SI=00A0H,DI=0024H,BX=0100H,BP=0200H, 数据段中变量名为VAL 的偏移地址值为0030H,试说明下列源操作数字段的寻址方式是什 么?物理地址值是多少? (1)MOV AX,[100H] (2)MOV AX,VAL (3)MOV AX,[BX] (4)MOV AX,ES:[BX] (5)MOV AX,[SI] (6)MOV AX,[BX+10H] (7)MOV AX,[BP] (8)MOV AX,VAL[BP][SI] (9)MOV AX,VAL[BX][DI] (10)MOV AX,[BP][DI] 答:(1)直接,10100H (2)直接,10030H (3)寄存器间接,10100H (4)寄存器间接,20100H (5)寄存器间接,100A0H (6)寄存器相对,10110H (7)寄存器间接,35200H (8)相对基址变址,352D0H (9)相对基址变址,10154H (10)基址变址,35224H 4. 写出下列指令的机器码 (1)MOV AL,CL (2)MOV DX,CX (3)MOV [BX+100H],3150H 答:(1)10001010 11000001B (2)10001011 11010001B (3)11000111 10000111 00000000 00000001 01010000 00110001B 5. 已知程序的数据段为: DATA SEGMENT A DB ‘$’,10H B DB ‘COMPUTER’ C DW 1234H, 0FFH D DB 5 DUP(?) E DD 1200459AH DATA ENDS 求下列程序段执行后的结果是什么。 MOV AL, A MOV DX, C XCHG DL, A MOV BX, OFFSET B MOV CX, 3[BX] LEA BX, D LDS SI, E LES DI, E 答:MOV AL, A AL=24H MOV DX, C DX=1234H XCHG DL, A DL=24H, A=34H MOV BX, OFFSET B BX=2 MOV CX, 3[BX] CX=5550H LEA BX, D BX=000EH LDS SI, E DS=1200H, SI=459AH LES DI, E ES=1200H, DI=459AH 6. 指出下列指令中哪些是错误的,错在什么地方。 (1)MOV DL,AX (2)MOV 8650H,AX (3)MOV DS,0200H (4)MOV [BX],[1200H] (5)MOV IP,0FFH (6)MOV [BX+SI+3],IP (7)MOV AX,[BX][BP] (8)MOV AL,ES:[BP] (9)MOV DL,[SI][DI] (10)MOV AX,OFFSET 0A20H (11)MOV AL,OFFSET TABLE (12)XCHG AL,50H (13)IN BL,05H (14)OUT AL,0FFEH 答:(1)长度不匹配 (2)立即数不能做目的操作数 (3)段寄存器不能用立即数赋值 (4)两个内存单元不能直接传送数据 (5)IP 不能用指令直接修改 (6)指令中不能出现 IP (7)BX/BP 应与 SI/DI 搭配 (8)正确 (9)SI/DI 应与 BX/BP 搭配 (10)OFFSET 后应跟内存单元 (11)偏移地址为16 位,AL 长度不够 (12)立即数不能用于XCHG (13)IN 必须用 AL/AX (14)操作数顺序反向;地址应为 8 位 7. 已知当前数据段中有一个十进制数字0~9 的7 段代码表,其数值依次为40H,79H,24H, 30H,19H,12H,02H,78H,00H,18H。要求用XLAT 指令将十进制数57 转换成相应的 7 段代码值,存到BX 寄存器中,试写出相应的程序段。 答: DATA SEGMENT TABLE DB 40H,79H,24H,30H,19H,12H,02H,78H,00H,18H DATA ENDS …… MOV AL,5 MOV BX,OFFSET TABLE XLAT TABLE MOV CL,AL MOV AL,7 XLAT TABLE MOV BL,AL MOV BH,CL 8. 已知当前SS=1050H,SP=0100H,AX=4860H,BX=1287H,试用示意图表示执行下列指 令过程中,堆栈中的内容和堆栈指针SP 是怎样变化的。 PUSH AX PUSH BX POP BX POP AX (1)指 9. 下列指令完成什么功能? (1)ADD AL,DH (2)ADC BX,CX (3)SUB AX,2710H (4)DEC BX (5)NEG CX (6)INC BL (7)MUL BX (8)DIV CL 答:(1)AL+DH→AL (2)BX+CX+CF→BX (3)AX-2710H→AX (__________4)BX-1→BX (5)0-CX→CX (6)BL+1→BL (7)AX*BX→DX,AX (8)AX/CL 商→AL,余数→AH 10. 已知AX=2508H,BX=0F36H,CX=0004H,DX=1864H,求下列每条指令执行后的结果 是什么?标志位CF 等于什么? (1)AND AH,CL (2)OR BL,30H (3)NOT AX (4)XOR CX,0FFF0H (5)TEST DH,0FH (6)CMP CX,00H (7)SHR DX,CL (8)SAR AL,1 (9)SHL BH,CL (10)SAL AX,1 (11)RCL BX,1 (12)ROR DX,CL 答:(1)AX=0408H,CF=0 (2)BX=0F36H,CF=0 (3)AX=0DAF7H,CF 不变 (4)CX=0FFF4H,CF=0 (5)DX=01864H,CF=0 (6)CX=0004H,CF=0 (7)DX=0186H,CF=0 (8)AX=2504H,CF=0 (9)BX=0F036H,CF=0 (10)AX=4A10H,CF=0 (11)BX=1E6C/1E6DH,CF=0 (12)DX=4186H,CF=0 11. 假设数据段定义如下: DATA SEGMENT STRING DB ‘The Personal Computer & TV’ DATA ENDS 试用字符串操作等指令编程完成以下功能: (1)把该字符串传送到附加段中偏移量为GET_CHAR 开始的内存单元中。 (2)比较该字符串是否与’The Computer’相同,若相同则将AL 寄存器的内容置1,否则置 0。并要求将比较次数送到BL 寄存器中。 (3)检查该字符串是否有’&’,若有则用空格字符将其替换。 (4)把字符串大写字母传送到附加段中以CAPS 开始的单元中,其余字符传到以CHART 开始的单元中。然后将数据段中存储上述字符串的单元清0。 答:(1) CLD LEA SI,STRING LEA DI,GET_CHAR MOV CX,26 REP MOVSB (2)补充在附加段定义 STRING1 DB ‘The computer’ MOV AL,1 CLD LEA SI,STRING LEA DI,STRING1 MOV CX,12 REPZ CMPSB JZ SKIP MOV AL,0 SKIP: MOV BX,12 SUB BX,CX (3) MOV AX, DATA MOV ES, AX CLD MOV AL,'&' LEA DI,STRING MOV CX,26 NEXT: REPNE SCASB JZ FIND JMP EXIT FIND: MOV BYTE PTR [DI-1], ' ' JCXZ EXIT JMP NEXT EXIT: (4) LEA SI,STRING LEA DI,CAPS LEA BX,CHART MOV CX,26 NEXT: MOV AL, [SI] CMP AL,’A’ JB OTHER CMP AL,’Z’ JA OTHER MOV ES:[DI],AL INC DI JMP SKIP OTHER: MOV ES:[BX],AL INC BX SKIP: MOV BYTE PTR[SI],0 INC SI LOOP NEXT 12. 编程将AX 寄存器中的内容以相反的顺序传送到DX 寄存器中,并要求AX 中的内容不 被破坏,然后统计DX 寄存器中‘1’的个数是多少。 答:: MOV BL,0 PUSH AX MOV DX,0 MOV CX,16 NEXT: SHL AX,1 JNC SKIP INC BL SKIP: RCR DX,1 LOOP NEXT STOP: POP AX 13. 设CS=1200H,IP=0100H,SS=5000H,SP=0400H,DS=2000H,SI=3000H,BX=0300H, (20300H)=4800H,(20302H)=00FFH,TABLE=0500H,PROG_N 标号的地址为1200: 0278H,PROG_F 标号的地址为3400H:0ABCH。说明下列每条指令执行完后,程序将分别 转移到何处执行? (1)JMP PROG_N (2)JMP BX (3)JMP [BX] (4)JMP FAR PROG_F (5)JMP DWORD PTR [BX] 如将上述指令中的操作码JMP 改成CALL,则每条指令执行完后,程序转向何处执行?并 请画图说明堆栈中的内容和堆栈指针如何变化。 答:(1)1200H:0278H (2)1200H:0300H (3)1200H:4800H (4)3400H:0ABCH (5)00FFH:4800H 将操作码JMP 改成CALL 后: (1)1200H:0278H 指令长度为3,则IP=0100H+3=0103H,入栈 (5)00FFH:4800H 指令长度为2,则IP=0100H+2=0102H,入栈 14. 在下列程序段括号中分别填入以下指令 (1)LOOP NEXT (2) LOOPE NEXT (3) LOOPNE NEXT 试说明在这三种情况下,程序段执行完后,AX,BX,CX,DX 的内容分别是什么。 START: MOV AX,01H MOV BX,02H MOV DX,03H MOV CX,04H NEXT: INC AX ADD BX,AX SHR DX,1 ( ) 答:(1) AX=05H BX=10H CX=0 DX=0 (2) AX=02H BX=04H CX=03H DX=01H (3) AX=03H BX=07H CX=02H DX=0 15. 某班有7 个同学英语成绩低于80 分,分数存在ARRAY 数组中,试编程完成以下工作: (1)给每人加 5 分,结果存到 NEW 数组中 (2)把总分存到SUM 单元中 答: DATA SEGMENT ARRAY DB ?,?,?,?,?,?,? NEW DB 7 DUP(?) SUM DW 0 DATA ENDS MOV AX,DATA MOV DS, AX (1) LEA SI,ARRAY LEA DI,NEW MOV CX,7 NEXT: MOV AL,[SI] ADD AL, 5 MOV [DI], AL INC SI INC DI LOOP NEXT (2) LEA SI,ARRAY CLC 􀃅SP 5000H:0000H 5000H:03FCH 5000H:03FEH 5000H:0400H MOV CX, 7 NEXT1:MOV AL,[SI] MOV AH, 0 ADC SUM, AX INC SI LOOP NEXT1 16. 中断向量表的作用是什么?它放在内存的什么区域内?中断向量表中的什么地址用于 类型3 的中断? 答:中断向量表用来存放中断服务程序的入口地址。8086 的256 类中断的入口地址要占用 1K 字节,位于内存00000H~003FFH 的区域内。中断向量表中0000CH~0000FH 用于类型 3 的中断。 17. 设类型2 的中断服务程序的起始地址为0485:0016H,它在中断向量表中如何存放? 答:物理地址 内容 00008H 16H 00009H 00H 0000AH 85H 0000BH 04H 18. 若中断向量表中地址为0040H 中存放240BH,0042H 单元里存放的是D169H,试问: (1)这些单元对应的中断类型是什么? (2)该中断服务程序的起始地址是什么? 答:(1)10H (2)D169H:240BH 19. 简要说明8086 响应类型0~4 中断的条件是什么? 答:类型0:除法错中断 执行除法指令时,若除数为0 或所得商超过寄存器能容纳的范围,则自动产生类型0 中断。 类型1:单步中断 若CPU 的单步标志TF=1,则每执行完一条指令后,自动产生类型1 中断。 类型2:不可屏蔽中断NMI 当8086 的NMI 引脚上接收到由低变高的电平变化时,将自动产生类型2 中断。 类型3:断点中断 若在程序中某位置设置断点,当程序执行到该断点时,则产生类型3 中断。 类型4:溢出中断 若溢出标志OF=1,则可由溢出中断指令INTO 产生类型4 中断。 第四章 1. 下列变量各占多少字节? A1 DW 23H,5876H A2 DB 3 DUP(?),0AH,0DH, ‘$’ A3 DD 5 DUP(1234H, 567890H) A4 DB 4 DUP(3 DUP(1, 2,’ABC’)) 答:A1 占4 个字节 A2 占6 个字节 A3 占40 个字节 A4 占60 个字节 2. 下列指令完成什么功能? MOV AX,00FFH AND 1122H+3344H MOV AL,15 GE 1111B MOV AX,00FFH LE 255+6/5 AND AL, 50 MOD 4 OR AX, 0F00FH AND 1234 OR 00FFH 答:(1)将0066H 传送给AX (2)将0FFH 传送给AL (3)将0FFFFH 传送给AX (4)AND AL,02H (5)OR AX,00FFH 3. 有符号定义语句如下: BUF DB 3,4,5,’123’ ABUF DB 0 L EQU ABUF-BUF 求L 的值为多少? 答:L=6 4. 假设程序中的数据定义如下: PAR DW ? PNAME DB 16 DUP(?) COUNT DD ? PLENTH EQU $-PAR 求PLENTH 的值为多少?表示什么意义? 答:PAR 的偏移地址为0,PLENTH 当前偏移地址$=2+16+4=22, $-PAR=22,故PLENTH 的值为22。 若在PLENTH 所在行有变量定义,则$表示该变量的偏移地址,即$表示PLENTH 所在 行的当前偏移地址。故PLENTH 表示从当前行到PAR 之间定义的变量所占的字节个数。 5. 对于下面的数据定义,各条MOV 指令执行后,有关寄存器的内容是什么? DA1 DB ? DA2 DW 10 DUP(?) DA3 DB ‘ABCD’ MOV AX, TYPE DA1 MOV BX, SIZE DA2 MOV CX, LENGTH DA3 答:AX=1,BX=20,CX=1 6. 下段程序完成后,AH 等于什么? IN AL, 5FH TEST AL, 80H JZ L1 MOV AH, 0 JMP STOP L1: MOV AH, 0FFH STOP: HLT 答:讨论从端口5FH 输入的数据最高位的情况。若最高位为1,则AH=0;若最高位为0, 则AH=0FFH。 7. 编程序完成下列功能: (1)利用中断调用产生5 秒延时。 (2)利用中断调用,在屏幕上显示1~9 之间随机数。 答:(1)可以利用中断类型1CH 来处理,因为在系统时钟的中断处理程序中,时钟中断一 次要调用一次INT 1CH,即每隔55ms,产生一次1CH 中断,要产生5 秒延时,只要中断 5s/55ms=91 次即可。又因1CH 中断处理程序中只有一条IRET 指令,故可将用户的程序代 替原有的INT 1CH 程序。 DATA SEGMENT COUNT DW 91 ;计数器 MESS DB ‘5 s delayed!’,0AH,0DH,’$’ DATA ENDS CODE SEGMENT MAIN PROC FAR ASSUME CS:CODE,DS:DATA,ES:DATA START: PUSH DS MOV AX,0 PUSH AX MOV AX,DATA MOV DS,AX MOV AL,1CH ;得到原中断向量 MOV AH,35H INT 21H PUSH ES ;存储原中断向量 PUSH BX PUSH DS MOV DX,OFFSET DELAY ;DELAY 的偏移地址和段地址 MOV AX,SEG DELAY MOV DS,AX MOV AL,1CH ;设置中断向量 MOV AH,25H INT 21H POP DS IN AL,21H ;设置中断屏蔽位 AND AL,0FEH OUT 21H,AL STI MOV DI,2000H ;主程序延迟,在执行此段程序期间 A1: MOV SI,3000H ;产生中断 A2: DEC SI JNZ A2 DEC DI JNZ A1 POP DX ;取原中断向量 POP DS MOV AL,1CH MOV AH,25H INT 21H RET MAIN ENDP DELAY PROC NEAR PUSH DS PUSH AX PUSH CX PUSH DX MOV AX,DATA MOV DS,AX STI DEC COUNT ;5 秒计数 JNZ EXIT MOV DX,OFFSET MESS ;显示信息 MOV AH,09H INT 21H MOV COUNT,91 ;5 秒的值 EXIT: CLI POP DX POP CX POP AX POP DS IRET DELAY ENDP CODE ENDS END START (2)可以利用INT 1AH,读取当前时间的1/100 秒为随机数。 CODE SEGMENT ASSUME CS:CODE START:MOV AH,0 INT 1AH ;读取当前时间CH:CL=时:分 MOV AL,DL ;DH:DL=秒:1/100 秒 MOV AH,0 MOV BL,9 DIV BL INC AH MOV DL,AH ADD DL,30H MOV AH,2 INT 21H MOV AH,4CH INT 21H CODE ENDS END START 8. 编两个通过过程完成将AX 中存放的二进制数转换成压缩型BCD 码以及将BCD 码转换 成二进制数。 答:(1)将AX 中的二进制数先后除以1000,100 和10,每次除法所得的商,即是BCD 数 的千位、百位和十位数,余数是个位数。 子程序名:B2TOBCD 输入参数:AX=十六位二进制数 输出参数:CF=0,则AX=4 位压缩型BCD 码。CF=1,则要转换的数大于9999,AX 不 变。 使用寄存器:CX:存放除数,DX:存放中间结果。 B2TOBCD PROC FAR CMP AX,9999 ;AX>9999,则CF 置1 JBE TRAN STC JMP EXIT TRAN: PUSH CX PUSH DX SUB DX,DX ;DX 清0 MOV CX,1000 ;计算千位数 DIV CX XCHG AX,DX ;商在DX 中,余数在AX 中 MOV CL,4 SHL DX,CL ;DX 左移4 位 MOV CL,100 ;计算百位数 DIV CL ADD DL,AL ;百位数加到DL 中,DX 左移4 位 MOV CL,4 SHL DX,CL XCHG AL,AH ;余数保留在AL 中 SUB AH,AH MOV CL,10 ;计算十位数 DIV CL ADD DL,AL ;十位数加到DL 中,DX 左移4 位 MOV CL,4 SHL DX,CL ADD DL,AH ;加个位数 MOV AX,DX ;结果送到AX 中 POP DX POP CX EXIT: RET B2TOBCD ENDP (2)将AX 中4 位BCD 码顺序乘以1000,100,10 和1,然后求和即得。 子程序名:BCDTOB2 输入参数:AX=4 位压缩BCD 码 输出参数:AX=十六位二进制数 使用寄存器:BX:暂存数据,CX:存放乘数,DX:存放中间结果 BCDTOB2 PROC FAR PUSH BX PUSH CX PUSH DX MOV BX,AX MOV CL,4 ROL AX,CL AND AX,000FH MOV CX,1000 ;乘以1000 MUL CX MOV DX,AX MOV AX,BX MOV CL,8 ROL AX,CL AND AX,000FH MOV CL,100 ;乘以100 MUL CL ADD DX,AX MOV AX,BX MOV CL,4 SHR AX,CL AND AX,000FH MOV CL,10 ;乘以10 MUL CL ADD DX,AX AND BX,000FH ADD DX,BX MOV AX,DX POP DX POP CX POP BX RET BCDTOB2 ENDP 9. 编写两个通用过程,一个完成ASCII 码转换成二进制数功能,另一个完成ASCII 字符显 示输出功能。 答:(1)将AX 中两位ASCII 码先转化成数字,然后AH*10+AL。 子程序名:ASCIITOB2 输入参数:AX=2 位ASCII 码 输出参数:AX=转换后二进制数 使用寄存器:BX,CX,DX ASCIITOB2 PROC FAR PUSH BX PUSH CX PUSH DX MOV BX,AX SUB AH,30H MOV AL,AH MOV CL,10 ;乘以10 MUL CL MOV DX,AX MOV AX,BX SUB AL,30H MOV AH,0 ADD AX,DX POP DX POP CX POP BX RET ASCIITOB2 ENDP (2)使用2 号DOS 功能调用显示字符。 子程序名:DISPLAY 输入参数:AX=2 位ASCII 码 输出参数:无 使用寄存器:BX,DX DISPLAY PROC FAR PUSH BX PUSH DX MOV BX,AX MOV DL,AH MOV AH,2 INT 21H MOV AX,BX MOV DL,AL MOV AH,2 INT 21H POP DX POP BX RET DISPLAY ENDP 10. 编制两个通用过程,完成十六进制数转换成ASCII 码并将ASCII 码字符显示。 答:(1)子程序名:HEXTOASC 输入参数:AX:4 位十六进制数 输出参数:DX,AX:4 位ASCII 码,DX 高2 位,AX 低2 位 使用寄存器:BX,CX,DX HEXTOASC PROC FAR PUSH BX PUSH CX PUSH DX MOV BX,AX MOV CL,4 ;转换AH 高4 位 SHR AX,CL AND AX,0F00H ADD AH,30H CMP AH,3AH JB A1 ADD AH,7 A1: MOV DH,AH MOV AX,BX ;转换AH 低4 位 AND AX,0F00H ADD AH,30H CMP AH,3AH JB A2 ADD AH,7 A2: MOV DL,AH MOV BH,BL ;转换AL 高4 位 MOV CL,4 SHR BL,CL ADD BL,30H CMP BL,3AH JB A3 ADD BL,7 A3: MOV AH,BL AND BH,0FH ;转换AL 低4 位 ADD BH,30H CMP BH,3AH JB A4 ADD BH,7 A4: MOV AL,BH POP DX POP CX POP BX RET HEXTOASC ENDP (2)子程序名:DISPLAYASC 输入参数:DX,AX:4 位ASCII 码 输出参数:无 使用寄存器:BX,CX DISPLAYASC PROC FAR PUSH BX PUSH CX MOV BX,DX MOV CX,AX MOV DL,BH MOV AH,02H INT 21H MOV DL,BL INT 21H MOV DL,CH INT 21H MOV DL,CL INT 21H MOV DL,’H’ INT 21H POP CX POP BX RET DISPLAYASC ENDP 11. 某程序可从键盘接收命令(0~5),分别转向6 个子程序,子程序入口地址分别为P0~ P5,编制程序,用跳转表实现分支结构。 答: DATA SEGMENT TABLE DW 6 DUP(?) DATA ENDS CODE SEGMENT ASSUME CS:CODE,DS:DATA START: MOV AX,DATA MOV DS,AX LEA SI, TABLE MOV WORD PTR[SI],OFFSET P0 MOV WORD PTR[SI+2],OFFSET P1 MOV WORD PTR[SI+4],OFFSET P2 MOV WORD PTR[SI+6],OFFSET P3 MOV WORD PTR[SI+8],OFFSET P4 MOV WORD PTR[SI+10],OFFSET P5 MOV AH,1 INT 21H SUB AL,30H SHL AL,1 MOV AH,0 MOV SI,AX JMP TABLE[SI] P0: P1: P2: P3: P4: P5: MOV AH,4CH INT 21H CODE ENDS END START 12. 在首地址为TABLE 的数组中按递增次序存放着100 个16 位补码数,编写一个程序,把 出现次数最多的数及其出现次数分别存放于AX 和BL 中。 答: DATA SEGMENT TABLE DW 100 DUP (?) ;数组中的数据是按增序排列的 NUM DW ? COUNT DW 0 DATA ENDS CODE SEGMENT MAIN PROC FAR ASSUME CS: CODE, DS: DATA START: PUSH DS ;设置返回DOS SUB AX, AX PUSH AX MOV AX, DATA MOV DS, AX ;给DS 赋值 BEGIN: MOV CX, 100 ;循环计数器 MOV SI, 0 NEXT: MOV DX, 0 MOV AX, TABLE[SI] COMP: CMP TABLE [SI], AX ;计算一个数的出现次数 JNE ADDR INC DX ADD SI, 2 LOOP COMP ADDR: CMP DX, COUNT ;此数出现的次数最多吗? JLE DONE MOV COUNT, DX ;目前此数出现的次数最多,记下次数 MOV NUM, AX ;记下此数 DONE: LOOP NEXT ;准备取下一个数 MOV CX, COUNT ;出现最多的次数存入(CX) MOV AX, NUM ;出现最多的数存入(AX) RET MAIN ENDP CODE ENDS ;以上定义代码段 END START 13. 将键盘上输入的十六进制数转换成十进制数,在屏幕上显示。 答:DATA SEGMENT STRING DB 'INPUT 4 HEX NUM:',0AH,0DH,'$' NUM DB 10 DUP(?) DATA ENDS CODE SEGMENT ASSUME CS:CODE,DS:DATA START: MOV AX,DATA MOV DS,AX LEA DX,STRING ;显示提示信息 MOV AH,9 INT 21H MOV BP,4 MOV DX,0 CONT: MOV CL,4 ;输入4 位十六进制数􀃆DX SHL DX,CL D1: MOV AH,1 INT 21H CMP AL,'0' JB D1 CMP AL,'F' JA D1 CMP AL,'A' JB A1 SUB AL,7 A1: SUB AL,30H MOV AH,0 ADD DX,AX DEC BP JNZ CONT MOV SI,0 ;将DX 转换成十进制数,再转换成ASCII 码—>NUM MOV AX,DX MOV DX,0 MOV BX,10 D2: DIV BX ADD DL,30H MOV NUM[SI],DL INC SI CMP AX,0 JZ EXIT MOV DX,0 JMP D2 EXIT: MOV DL,0AH ;显示十进制数 MOV AH,2 INT 21H MOV DL,0DH INT 21H D3: DEC SI MOV DL,NUM[SI] MOV AH,2 INT 21H JNZ D3 MOV AH,4CH INT 21H CODE ENDS END START 14. 将AX 中的无符号二进制数转换成ASCII 字符串表示的十进制数。 答:将13 题输入过程和输出过程去掉即得。 DATA SEGMENT NUM DB 10 DUP(?) ;转换后ASCII 码按倒序存放于NUM DATA ENDS CODE SEGMENT ASSUME CS:CODE,DS:DATA START: MOV AX,DATA MOV DS,AX MOV AX, ×××× ;无符号二进制数 MOV SI,0 ;将AX 转换成十进制数,再转换成ASCII 码—>NUM MOV DX,0 MOV BX,10 D2: DIV BX ADD DL,30H MOV NUM[SI],DL INC SI CMP AX,0 JZ EXIT MOV DX,0 JMP D2 EXIT: MOV AH,4CH INT 21H CODE ENDS END START 15. 从键盘输入20 个有符号数,将它们排序并在屏幕上显示。 答:DATA SEGMENT NUM DW 20 DUP(?) ;存放20 个有符号数 ASC DB 10 DUP(?) ;输出时暂时保存每一个数的ASCII 码 DATA ENDS CODE SEGMENT ASSUME CS:CODE,DS:DATA START: MOV AX,DATA MOV DS,AX MOV CX,20 MOV BX,10 MOV SI,0 MOV BP,0 BEGIN: MOV DX,0 ;输入20 个有符号数(十进制),并 A1: MOV AH,1 ;转化为二进制数存放于NUM 数组 INT 21H CMP AL,' ' ;判断是否空格 JZ A2 CMP AL,0DH ;是否回车符 JZ A2 CMP AL,'-' ;是否‘-’ JZ A3 JMP A4 A3: MOV BP,1 JMP A1 A4: PUSH AX MOV AX,DX MUL BX MOV DX,AX POP AX SUB AL,30H MOV AH,0 ADD DX,AX JMP A1 A2: CMP BP,1 JNZ A5 NEG DX ;若为负数,则取负 A5: MOV NUM[SI],DX MOV BP,0 ADD SI,2 LOOP BEGIN MOV DL,0DH ;回车换行 MOV AH,2 INT 21H MOV DL,0AH INT 21H MOV BX,0 ;对20 个有符号数按由小到大顺序排序 MOV CX,19 ;采用冒泡法,排序后依然存放于NUM 数组 L1: MOV DX,CX L2: MOV AX,NUM[BX] CMP AX,NUM[BX+2] JLE CONT1 XCHG AX,NUM[BX+2] MOV NUM[BX],AX CONT1: ADD BX,2 LOOP L2 MOV CX,DX MOV BX,0 LOOP L1 MOV CX,20 ;将20 个有符号数(二进制)转换为十进制数 MOV SI,0 ;再转换为ASCII 码并输出屏幕 D1: MOV AX,NUM[SI] ADD SI,2 TEST AX,1000H JZ D4 PUSH AX MOV DL,'-' MOV AH,2 INT 21H POP AX NEG AX D4:
    展开阅读全文
    提示  咨信网温馨提示:
    1、咨信平台为文档C2C交易模式,即用户上传的文档直接被用户下载,收益归上传人(含作者)所有;本站仅是提供信息存储空间和展示预览,仅对用户上传内容的表现方式做保护处理,对上载内容不做任何修改或编辑。所展示的作品文档包括内容和图片全部来源于网络用户和作者上传投稿,我们不确定上传用户享有完全著作权,根据《信息网络传播权保护条例》,如果侵犯了您的版权、权益或隐私,请联系我们,核实后会尽快下架及时删除,并可随时和客服了解处理情况,尊重保护知识产权我们共同努力。
    2、文档的总页数、文档格式和文档大小以系统显示为准(内容中显示的页数不一定正确),网站客服只以系统显示的页数、文件格式、文档大小作为仲裁依据,个别因单元格分列造成显示页码不一将协商解决,平台无法对文档的真实性、完整性、权威性、准确性、专业性及其观点立场做任何保证或承诺,下载前须认真查看,确认无误后再购买,务必慎重购买;若有违法违纪将进行移交司法处理,若涉侵权平台将进行基本处罚并下架。
    3、本站所有内容均由用户上传,付费前请自行鉴别,如您付费,意味着您已接受本站规则且自行承担风险,本站不进行额外附加服务,虚拟产品一经售出概不退款(未进行购买下载可退充值款),文档一经付费(服务费)、不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
    4、如你看到网页展示的文档有www.zixin.com.cn水印,是因预览和防盗链等技术需要对页面进行转换压缩成图而已,我们并不对上传的文档进行任何编辑或修改,文档下载后都不会有水印标识(原文档上传前个别存留的除外),下载后原文更清晰;试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓;PPT和DOC文档可被视为“模板”,允许上传人保留章节、目录结构的情况下删减部份的内容;PDF文档不管是原文档转换或图片扫描而得,本站不作要求视为允许,下载前可先查看【教您几个在下载文档中可以更好的避免被坑】。
    5、本文档所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用;网站提供的党政主题相关内容(国旗、国徽、党徽--等)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。
    6、文档遇到问题,请及时联系平台进行协调解决,联系【微信客服】、【QQ客服】,若有其他问题请点击或扫码反馈【服务填表】;文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“【版权申诉】”,意见反馈和侵权处理邮箱:1219186828@qq.com;也可以拔打客服电话:0574-28810668;投诉电话:18658249818。

    开通VIP折扣优惠下载文档

    自信AI创作助手
    关于本文
    本文标题:微机接口答案.doc
    链接地址:https://www.zixin.com.cn/doc/1355915.html
    页脚通栏广告

    Copyright ©2010-2026   All Rights Reserved  宁波自信网络信息技术有限公司 版权所有   |  客服电话:0574-28810668    微信客服:咨信网客服    投诉电话:18658249818   

    违法和不良信息举报邮箱:help@zixin.com.cn    文档合作和网站合作邮箱:fuwu@zixin.com.cn    意见反馈和侵权处理邮箱:1219186828@qq.com   | 证照中心

    12321jubao.png12321网络举报中心 电话:010-12321  jubao.png中国互联网举报中心 电话:12377   gongan.png浙公网安备33021202000488号  icp.png浙ICP备2021020529号-1 浙B2-20240490   


    关注我们 :微信公众号  抖音  微博  LOFTER               

    自信网络  |  ZixinNetwork