微机原理与接口技术 第四章 课后答案
第四章参考答案
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字,全部文档内容请下载后查看。喜欢就下载吧 ……
相关推荐:
- [初中教育]婚姻家庭法学教学教案
- [初中教育]浅谈小学语文教学中的创新教育
- [初中教育]中华人民共和国侵权责任法2009
- [初中教育]2016-2022年中国薄膜太阳能电池行业发
- [初中教育]多级轻型井点降水的应用
- [初中教育]外语教学法流派介绍和简评
- [初中教育]实验一、典型环节及其阶跃响应
- [初中教育]内蒙古2012-2013学年度国家奖学金获奖
- [初中教育]移动通信营销渠道管理探讨
- [初中教育]初三化学第一学期第一第二章基础知识点
- [初中教育]一天的食物教学设计
- [初中教育]光导照明系统的基本结构及工作原理
- [初中教育]长春市十一高、东北师范大学附属中学、
- [初中教育]“十三五”规划重点-配重式装卸车项目
- [初中教育]领导方法和领导艺术
- [初中教育]第三章 植物病虫草鼠害诊断与防治基
- [初中教育]2019届九年级语文上册 第二单元 6纪念
- [初中教育]甲级单位编制水豆腐项目可行性报告(立
- [初中教育]Ch8-1补充 09101数据库系统原理及应用-
- [初中教育]2017-2023年中国吊装设备行业市场分析
- 制作毕业纪念册需要哪些材料
- 2015-2016学年高二化学苏教版选修4课件
- 哈佛管理导师-创建商业案例
- 职场交际中的谈吐礼仪知识与职场会议接
- 中国糕点及面包行业发展现状与竞争战略
- 沂河“12·7”洪水茶山拦河坝
- 管道水流量计算公式
- 4-2发电机火灾事故处置方案
- 数字信号处理实验五
- 2009年经济师(中级)金融专业知识全真试
- 历史街区保护规划--04历史文化遗产保护
- 宁夏回族自治区中小学职称评价标准
- 评先评优测评表
- 圆的切线证明及线段长求解在在中考中的
- 【解析版】2015年江苏省南京外国语学校
- 人教版八年级上册科学第一章习题精华
- 责任心与执行力
- SA8000社会责任管理体系标准培训
- IgA肾病的饮食应注意
- 杭州市建设工程文件归档整理方案(试行)




