教学文库网 - 权威文档分享云平台
您的当前位置:首页 > 文库大全 > 初中教育 >

微机原理与接口技术 第四章 课后答案

来源:网络收集 时间:2026-08-27
导读: 第四章参考答案 1. 设下列指令中的所有标识符均是类型属性为字的变量,请指出下列指令中哪些是非法的指令?错误的原因? ⑴MOV BP,AL ⑵MOV WORD_OP1,WORD_OP2 ⑶MOV SAVE_WODR,DS ⑷MOV SP,SS:DATA_WORD[BX][SI] ⑸MOV [BX][SI],2 解:(1)非法。源操作数

第四章参考答案

1. 设下列指令中的所有标识符均是类型属性为字的变量,请指出下列指令中哪些是非法的指令?错误的原因?

⑴MOV BP,AL

⑵MOV WORD_OP1,WORD_OP2 ⑶MOV SAVE_WODR,DS ⑷MOV SP,SS:DATA_WORD[BX][SI] ⑸MOV [BX][SI],2 解:(1)非法。源操作数与目的操作数类型不符。 (2)合法。

(3)合法。

(4)合法。

(5)非法。需说明操作数类型。

2. 设VAR1和VAR2为字变量,LAB为标号,

试指出下列指令的错误之处: ⑴ADD VAR1,VAR2 ⑵SUB AL,VAR1 ⑶JMP LAB[SI] ⑷JNZ VAR1 ⑸JMP NEAR LAB 解:(1)两个操作数均为符号地址。 (2)两个操作数的类型不同。

(3)

(4)

(5)

3.画图说明下列语句所分配的存储空间及初始化的数据值。

⑴BYTE_VAR DB ‘BYTE’,12,-12H,3 DUP(0,?,2 DUP(1,2),?)

5 DUP(0,1,2),?,-5 ‘BY’,’TE’,256H

解:(1) (2)

4.设程序中的数据定义如下:

PARTNO DW ? PNAME DB 16 DUP(?) COUNT DD ? PLENTH EQU $-PARTNO 问PLENTH的值为多少?它表示什么意义? 解:PLENTH的值为22(16H)。表示当前位置与PARTNO之间有22个字节空间。

5. 设程序中的数据定义如下:

LNAME DB 30 DUP(?) ADDRESS DB 30 DUP(?) CITY DB 15 DUP(?) CODE_LIST DB 1,7,8,,3,2

⑴用一条MOV指令将LNAME的偏移地址放入AX;

⑵用一条指令将CODE_LIST的头两个字节的内容放入SI:

⑶写一条伪操作使CODE_LENGTH的值等于CODE_LIST域的实际长度。 解:(1)MOV AX,OFFSET LNAME (2)MOV SI,WORD CODE_LIST

(3) CODE_LENGTH EQU $-CODE_LIST

6. 对于下面数据定义,各条MOV指令单独执行后,有关寄存器的内容是什么?

FLDB DB ? TABLEA DW 20 DUP(?) TABLEB DB ‘ABCD’ ⑴MOV AX,TYPE FLDB ⑵MOV AX,TYPE TABLEA ⑶MOV CX,LENGTH TABLEA ⑷MOV DX,SIZE TABLEA ⑸MOV CX,LENGTH TABLEB 解:(1)AX=1 (2)AX=2 (3)CX=14H (4)DX=28H (5)CX=1

7. 内存的一个区域中有100个字符是用小写字母表示的,试编写一个程序,把它们转换成大写字母,并送屏幕显示。 解:参考程序如下: MOV CX,0064H

AA:MOV DL,[SI] ADD DL,20H MOV [SI],DL MOV AH,02H INT 20H INC SI LOOP AA HLT

8.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

……

9.编一段程序,使在用STRING开头的数据区中查找字符串WE,数据区以$符作为结束符号。如查到,给出字符所在地址;如查不到,给出NOT FOUND提示。(假设最多有1个WE字符串) 解:参考程序如下:

DATA SEGMENT

STRING:DB ‘ABCWE5$’

RE:DB ‘NOT FOUND$’

DATA ENDS

CODE SEGMENT

ASSUME CS:CODE,DS:DATA BEGIN: PUSH DS

XOR AX,AX PUSH AX MOV AX,DATA MOV DS,AX LEA SI,STRING

AA: MOV AL,[SI]

CMP AL,’$’ JZ NEXT

CMPA AL,’W’ JNZ NEXT1 INC SI

MOV AL,[SI] CMP AL,’E’ JNZ AA DEC SI MOV BX,SI

MOV CL,04H

MOV DH,04H AA1: ROL BX,CL

MOV DL,BL

MOV AH,02H INT 20H DEC DH JNZ AA1 JMP NEXT2 JMP AA

NEXT1: INC SI NEXT: LEA DX,RE MOV AH,09H

INT 20H

NEXT2: MOV AH,4CH INT 21H CODE: ENDS

END BEGIN

10. 从键盘输入的数字和字符都是以ASCII码方式存入内存,现要求从键盘输入两位16进制数,并在屏幕上显示出对应的二进制数。试编一个程序实现此功能。

解:参考程序段如下:

MOV AH,07H

INT 20H CMP AL,3AH JC BB SUB AL,07H

BB:SUB AL,30H MOV BH,AL

INT 20H

CMP AL,3AH JC BB1

SUB AL,07H BB1:SUB AL,30H

MOV BL,AL MOV CX,0016H

AA:SHL BX,1 JC NEXT1

MOV DL,’0’ MOV AH,02H INT 20H LOOP AA HLT

MOV AH,02H INT 20H

NEXT1:MOV DL,’1’

HLT

11.一个班级共有学生45人,在内存中有一个按学号排列的成绩表。试编一个程序,实现按成绩高低并注有学号的有序表,如果有成绩相同的则按学号先后排序。

解:假设:成绩表的起始地址符号:ABC,学号的起始地址符号:ABC1,参考程序段如下:

LEA SI,ABC

MOV DI,OFFSET ABC1 MOV CX,002DH DEC CX

AA:MOV BX,CX AA1:MOV AL,[SI]

CMP AL,[SI+1] JGE AA2

XCHG AL,[SI+1] MOV [SI],AL MOV AH,[DI] XCHG AH,[DI+1] MOV [DI],AH ADD DI,0001H LOOP AA1 MOV CX,BX LOOP AA HLT

AA2:ADD SI,0001H

12.编一个程序,使从键盘上输入一串字符,以回车符结束,然后按字母、数字和其它符号三类统计各自的个数,在屏幕上显示统计结果。

解:注释:以下程序中BL用于存放统计的字母个数,字母的ASCII码区间:41H~5AH及61H~7AH;BH用于存放统计的数字个数,数字的ASCII码区间:30H~39H;DH用于存放统计的其它符号的个数。

MOV BH,00H MOV SI,1000H AA:MOV AH,07H INT 20H

MOV [SI],AL CMP AL,’$’ JZ NEXT INC SI INC BH JMP AA MOV CH,00H

NEXT:MOV CL,BH

MOV BX,0000H MOV DH,00H

AA0:MOV AL,[SI] CMP AL,30H

JNC NEXT1 INC SI LOOP AA0

JMP NEXTE

NEXT1:CMP AL,3AH

JNC NEXT2 INC BH INC SI LOOP AA0 JMP NEXTE JC AA1

CMP AL,5BH JNC AA2 INC SI LOOP AA0 JMP NEXTE AA2:CMP AL,61H JC AA1

CMP AL,7BH JNC AA1 JMP AA3 AA1:INC DH

NEXT2:CMP AL,41H

AA3:INC BL

NEXTE:MOV DL,BL MOV AH,02H

INT 20H MOV DL,BH INT 20H

MOV DL,DH INT 20H HLT

13.有一个首地址为MEM的100D字数组,试编写程序删除数组中所有为零的项,并将后续项向前压缩,最后将数组的剩余部分补上零。 解:参考程序段如下:

mov si,offset MEM mov cx,0064h

mov bl,00h aa:mov ax,[si] cmp ax,0000h jnz next1 cmp bh,01h jz aa3 jmp aae aa3:inc bl

push cx

dec cx mov di,si

;记数组中间0项的个数 ;后面存在不为0数的标记

mov bh,01h

mov bh,00h aa1:mov ax,[di+2]

mov [di],ax add di,0002h cmp ax,0000h jz aa2

mov bh,01h aa2:loop aa1

pop cx jmp aa next1:add si,0002h

loop aa mov bh,00h mov cx,bx shl bx,01 sub si,bx mov ax,0000h cc:mov [si],ax

add si,0002h

loop cc aae:hlt

14.在STRING到STRING+99单元中存放着一个字符串,试编制一个程序测试该字符串中是否存在数字,如有则把CL的第5位置1,否则将该位置0。 解:参考程序如下: MOV CX,100 MOV SI,OFFSET STRI …… 此处隐藏:3883字,全部文档内容请下载后查看。喜欢就下载吧 ……

微机原理与接口技术 第四章 课后答案.doc 将本文的Word文档下载到电脑,方便复制、编辑、收藏和打印
本文链接:https://www.jiaowen.net/wenku/1565301.html(转载请注明文章来源)
Copyright © 2020-2025 教文网 版权所有
声明 :本网站尊重并保护知识产权,根据《信息网络传播权保护条例》,如果我们转载的作品侵犯了您的权利,请在一个月内通知我们,我们会及时删除。
客服QQ:78024566 邮箱:78024566@qq.com
苏ICP备19068818号-2
Top
× 游客快捷下载通道(下载后可以自由复制和排版)
VIP包月下载
特价:29 元/月 原价:99元
低至 0.3 元/份 每月下载150
全站内容免费自由复制
VIP包月下载
特价:29 元/月 原价:99元
低至 0.3 元/份 每月下载150
全站内容免费自由复制
注:下载文档有可能出现无法下载或内容有问题,请联系客服协助您处理。
× 常见问题(客服时间:周一到周五 9:30-18:00)