微机原理与接口技术陈卫红版答案内容摘要:

PARTNO DW ? PNAME DB 16 DUP(?) COUNT DD ? PLENTH EQU $PARTNO 问 PLENTH 的值为多少。 它的含义是什么。 解 :PLENTH 的值为 22( 16H)。 表示当前位置与 PARTNO 之间有 22 个字节空间。 3.假设程序中的数据定义如下 : LNAME DB 30 DUP( ?) ADDRESS DB 30 DUP( ?) CITY DB 15 DUP( ?) CODE_LIST DB 1,7,8,3,2 ( 1)用一条 MOV 指令将 LNAME 的偏移地址放入 AX; ( 2)用一条 指令将 CODE_LIST 的头两个字节的内容放入 SI: ( 3)写一条伪操作使 CODE_LENGTH 的值等于 CODE_LIST 域的实际长度。 解 :( 1) MOV AX, OFFSET LNAME ( 2) MOV SI, WORD CODE_LIST ( 3) CODE_LENGTH EQU $CODE_LIST 4.执行下列程序段后, AX、 BX 的内容各是什么。 MOV AX,0001H MOV BX,8000H NEG AX MOV CX,4 AA:SHL AX,1 RCL BX,1 LOOP AA HLT 解 :AX=0FFF0H, BX=000FH 5.阅读以下程序,回答问题 DATA SEGMENT ABC DB 90H,12H,43H,56H,04H,01H COUNT EQU $ABC RESULT DW ? DATA ENDS CODE SEGMENT ASSUME CS:CODE,DS:DATA START:PUSH DS MOV AX,DATA MOV DS,AX XOR AX,AX MOV CX,COUNT LEA SI,ABC LEA DI,RESULT AA:MOV BL,[SI] INC SI CMP BL,80H JC NEXT1 NEG BL NEXT1:ADD AL,BL ADC AH,00H LOOP AA MOV [DI],AX MOV AH,4CH INT 21H CODE ENDS END START ( 1)程序完成什么功能。 ( 2)程序中 NEG BL 指令的作用是什么。 ( 3)程序执行结束后 RESULT 字单元的内容是什么。 ( 4)能否用 MOV SI, OFFSET ABC 代替程序中 LEA SI, ABC 指令。 ( 5)汇编结束后符号 COUNT 的值是什么。 解 :( 1)程序完成求一组有符号字节数的绝对值之和。 ( 2)程序中 NEG BL 指令的作用是求负数的绝对值。 ( 3)程序执行结束后 RESULT 字单元的内容是 0120H。 ( 4)能。 ( 5)汇编结束后符号 COUNT 的值是 06H。 6.阅读以下程序,回答问题 DSEG SEGMENT ARRAY DB 34H,56H,23H,70H,96H COUNT EQU $ARRAY DSEG ENDS SSEG SEGMENT PARA STACK ‘ STACK’ DB 256 DUP( 0) SSEG ENDS CSEG SEGMENT ASSUME CS:CSEG,DS:DSEG,SS:SSEG START:MOV AX,DSEG MOV DS,AX MOV SI,OFFSET ARRAY MOV CX,COUNT CLD NEXT: LODSB MOV BL,AL AND AL,0F0H PUSH CX MOV CL,4 SHR AL,CL OR AL,30H CALL DISP MOV AL,BL AND AL,0FH OR AL,30H CALL DISP DEC CX JCXZ DONE MOV AL,2CH ;逗号的 ASCII 码为 2CH CALL DISP JMP NEXT DONE:MOV AH,4CH ;终止当前进程,返回调用进程 INT 21H DISP PROC NEAR MOV AH,14 ;写字符到当前光标位置,光标前进 一格 INT 10H RET DISP ENDP CSEG ENDS END START ( 1)程序执行结束后,屏幕上显示的内容是什么。 ( 2)程序中带下划线的指令可以用什么指令替代(仅一条)。 ( 3)程序中空格处应填入什么指令,才能保证程序按要求正常执行。 解 :( 1)程序执行结束后,屏幕上显示的内容是 34, 56, 23, 70, 96。 ( 2)程序中带下划线的指令可以用 LEA SI, ARRAY 指令替代。 ( 3)程序中空格处应填入 POP CX 指令,才能保证程序按要求正常执行。 7. AX 寄存器 中存有 4 位压缩 BCD码,试编写程序将这 4 位数字分开,并分别存入 BH、BL、 CH 和 CL 寄存器中。 解 : 参考程序段如下 : „„ MOV DX,AX MOV CL,04H ROL AX,CL AND DX,0F0FH MOV BL,DH MOV CL,DL AND AX,0F0FH MOV BH,AL MOV CH,AH „„ 8.已知 X、 Y 是字节型的无符号整数,编写程序计算   )3020(,15 )200(,8/ XX XXY。 解 :参考程序如下 : DATA SEGMENT X DB ? ;运行程序时取 X 分别位于两个分支 Y DB ? DATA ENDS CODE SEGMENT ASSUME CS:CODE, DS:DATA START:MOV AX, DATA MOV DS, AX MOV AL, X CMP AL, 20 JNC NEXT MOV CL, 03H SHR AL, CL JMP NEXT1 NEXT:SUB AL, 15 NEXT1:MOV Y, AL MOV AH, 4CH INT 21H CODE ENDS END START 9.编写程序,统计寄存器 BX 中二进制位“ 1”的个数,结果存在 AL 中。 解 :参考程序如下 : CODE SEGMENT ASSUME CS:CODE START: MOV AL, 00H MOV DX, BX MOV CX, 16 AA: CMP DX, 0 JZ NEXT SHL DX, 1 JNC NEXT1 INC AL NEXT1: LOOP AA NEXT: MOV AH, 4CH INT 21H CODE ENDS END START 10.编写程序段将计算机日期设置为 2020 年 10 月 1 日。 解 :参考程序段如下 : MOV CX, 2020H。 设置年 MOV DH, 10H。 设置月 MOV DL, 01H。 设置日 MOV AH, 2BH INT 21H HLT 11.编写程序实现接收一个字符的输入,并在屏幕上用二进制形式( 0/1)显示出它的ASCII 码值。 解 :参考程序如下 : CODE SEGMENT ASSUME CS:CODE, DS:DATA START: MOV AH, 01H。 键盘输入 INT 21H MOV BL, AL MOV CX, 0007H SHL BL,1 AA:SHL BL, 1 JC NEXT1 MOV DL, ’0’ JMP NEXT NEXT1:MOV DL, ’1’ NEXT: MOV AH, 02H。 显示输出 7 位 ASCII 码值 INT 21H LOOP AA MOV AH, 4CH INT 21H CODE ENDS END START 12.设数据块存放在 BUFFER 开始的 50 个字节单元中,试编写程序统计数据块中正数(不包括 0)的个数,并将统计的结果存放到 NUMBER 单元中。 解 :参考程序如下 : DATA SEGMENT BUFFER DB 23H,00H,56H,89H,09H,30H DB 98H,11H,07H,„ COUNT EQU $BUFFER NUMBER DB 00H DATA ENDS CODE SEGMENT ASSUME CS:CODE, DS:DATA START:MOV AX,DATA MOV DS,AX MOV CX,COUNT LEA SI,BUFFER AA:MOV AL,[SI] CMP AL,00H JZ NEXT JS NEXT INC NUMBER NEXT:INC SI LOOP AA MOV AH, 4CH INT 21H CODE ENDS END START 13.内存的一个区域中有 100 个字符是用小写字母表示的,试编写一个程序,把它们转换成大写字母,并送屏幕显示。 解 :参考程序如下 : DATA SEGMENT ABC DB 61H, 65H, 62H, 63H, „ ;( 100 个 小写字母 ) DATA ENDS CODE SEGMENT ASSUME CS:CODE, DS:DATA START:MOV AX, DATA MOV DS, AX MOV CX, 0064H LEA SI, ABC AA:MOV DL, [SI] SUB DL, 20H MOV [SI], DL MOV AH, 02H INT 21H INC SI LOOP AA MOV AH, 4CH INT 21H CODE ENDS END START 14.“ 9876”是将输入数据字符“ 3268”通过密码表“ 3589027164”加密而得,编写解密程序,求任意输入四位密码的原码。 解 :参考程序如下 : DATA SEGMENT ABC DB 33H,35H,38H,39H,30H DB 32H,37H,31H,36H,34H ABC1 DB 4DUP(00H) ABC2 DB 00H DATA ENDS CODE SEGMENT ASSUME CS:CODE, DS:DATA START: MOV AX, DATA MOV DS, AX LEA SI,ABC1 LEA DI,ABC2 MOV CX,0004H AA: MOV AH,01H INT 21H MOV [SI],AL INC SI LOOP AA LEA SI,ABC1 MOV DX,0000H MOV CX,0004H AA0: LEA BX,ABC AA1: MOV AL,[SI] CMP AL,[BX] JZ NEXT INC BX INC DL JMP AA1 NEXT:PUSH CX CMP CX,01H JZ NEXT1 MOV CL,04H SHL DX,CL NEXT1:POP CX LOOP AA0 MOV [DI],AX MOV AH,4CH INT 21H CODE ENDS END START 15.在 STRING 单元开始存放着一字符串,字符串以“ $”结束,试编制一程序测试该字符串中是否有数字 0~9,如有则将 CL 中的第 5 位置 1,否则将该位清 0。 解 :参考程序 如下 : DATA SEGMENT ABC DB ‘ABCDS9KL$’ DATA ENDS CODE SEGMENT ASSUME CS:CODE, DS:DATA START:MOV AX, DATA MOV DS, AX LEA SI, ABC MOV CL,00H AA: MOV AL,[SI] CMP AL,’$’ JZ NEXT1 CMP AL,30H JC NEXT CMP AL,3AH JN。
阅读剩余 0%
本站所有文章资讯、展示的图片素材等内容均为注册用户上传(部分报媒/平媒内容转载自网络合作媒体),仅供学习参考。 用户通过本站上传、发布的任何内容的知识产权归属用户或原始著作权人所有。如有侵犯您的版权,请联系我们反馈本站将在三个工作日内改正。