李伯成《微型计算机原理与接口技术》课后习题答案.docx
- 文档编号:12363591
- 上传时间:2023-04-18
- 格式:DOCX
- 页数:14
- 大小:20.84KB
李伯成《微型计算机原理与接口技术》课后习题答案.docx
《李伯成《微型计算机原理与接口技术》课后习题答案.docx》由会员分享,可在线阅读,更多相关《李伯成《微型计算机原理与接口技术》课后习题答案.docx(14页珍藏版)》请在冰豆网上搜索。
李伯成《微型计算机原理与接口技术》课后习题答案
李伯成《微机原理》习题 第三章
本章作业参考书目:
1.周明德:
微型计算机IBM-PC系统原理与应用 清华大学出版社 1991
2.王永山等:
微型计算机原理与应用 西安电子科大出版社1998
3.张怀莲:
IBMPC汇编语言程序设计 电子工业出版社 1990
注:
本习题解中的程序仅为代码片段,可在Emu8086version2.57环境下仿真运行,如果在MASM下进行汇编,需添加段设置以及相应的伪指令。
3.1
MOV AX,00H; 立即寻址
SUB AX,AX; 寄存器寻址
MOV AX,[BX]; 寄存器间接寻址
MOV AX,TABLE; 直接寻址
MOV AL,ARAY1[SI]; 寄存器相对寻址
MOV AX,[BX+6]; 寄存器相对寻址
3.2 若1KB的数据存放在TABLE以下,试编写程序将该数据拌到NEXT之下。
程序片段如下:
ORG100h
MOV CX,03FFH;数据个数
LEA SI,TABLE;源区首地址
LEA DI,NEXT;目的区首地址
AGAIN:
MOV AL,[SI];
MOV [DI],AL; 搬移
INC SI
INC DI; 移动地址指针
DEC CX; 循环计数器递减
JNZ AGAIN; 循环未结束转
HLT; 暂停
TABLEDB1024dup('A');源数据区
NEXT DB1024dup(0); 目的数据区
3.3 编写10个字(16位二进制数)之和的程序
ORG100h
LEA SI,ADD1;
LEA DI,ADD2;
LEA BX,SUM;
MOV CL,CONT;
MOV CH,0; 循环初始化
CLC; 进位清零
MADD1:
MOV AX,[SI]; 读加数1
ADC AX,[DI]
ADD SI,2; 移动源区地址指针
ADD DI,2; 移动目的区地址指针
MOV [BX],AX; 回存计算结果
ADD BX,2; 移动“和”存储区地址指针
LOOP MADD1; 循环控制
HLT; 暂停
ADD1 DB 0FEH,86H,7CH,44h,56H,1FH,24H,01H,02H,33H;加数1
ADD2 DB 56H,49H,4EH,0FH,9CH,22H,45H,11H,45H,21H;加数2
SUM DB 10 DUP(0); 和存储单元
CONT DB 5; 循环次数
3.4某16位二进制数,放在DATA连续的两个单元中,试编程求其平方根和余数,将其分别存放在ANS和REMAIN中。
ORG100h
MOV BL,2; 除数初值
AGAIN:
MOV CX,NUM; 预计最大循环次数
MOV AL,BL; 0、1的平方根除外
MUL BL; 得到2的平方
CMP AX,CX; 大于原始数据么?
JG EXIT; 若原始数据小于4转EXIT
MOV AX,CX; 读数
DIV BL; 试除
INC BL; 除数递增
JMP AGAIN; 继续除
EXIT:
DEC BL; 去除除数自加
MOV ANS,BL; 存商
MOV AL,BL; 恢复余数
MUL BL;
SUB CX,AX;
MOV REMAIN,CL;
HLT
NUM DW 7;
ANS DB ?
;
REMAIN DB ?
;
3.5在DATA1之下顺序存放着以ASCII码表示的千位数,将其转换成二进制数。
MOV CL,4; 移位次数
MOV CH,CL; 循环次数
MOV SI,OFFSETASCBIN
CLD
XOR AX,AX
XOR DX,DX
ASCB1:
LODSB
AND AL,7FH
CMP AL,'0' ;不大于‘0’结束转换
JL ERR
CMP AL,'9'
JG ASCB2 ;大于‘9’转ASCB2
SUB AL,30H ;数字形式二进制数减30H
JMP ASCB3
ASCB2:
CMP AL,'A' ;大于‘9’又小于‘A’结束转换
JL ERR
CMP AL,'F'
JG ERR ;大于‘F’为不合理数,结束转换
SUB AL,37H ;字符形式ASCII数减37H
ASCB3:
OR DL,AL
ROL DX,CL
DEC CH
JNZ ASCB1
ROL DX,CL
MOV BIN,DX;存储转换结果
ERR:
NOP
HLT
ASCBIN DB'1','B,'4','3'
BIN DW ?
3.7编写程序将MOLT中的一个8位数乘以20,乘积放在ANS中(用3种方式)。
解:
第一种方法:
常规乘法运算
ORG100h
MOV AL,MOLT
MOV BL,20
MUL BL
MOV ANS,AX
HLT
MOLT DB 2
ANS DW ?
第二种方法,将MOLT连加20次
ORG100h
MOV CX,20
MOV BX,MOLT
XOR AX,AX
CLC
ADD1:
ADC AX,BX
LOOP ADD1
MOV ANS,AX
HLT
MOLT DW 5
ANS DW ?
第三种方法,将“20”连加MOLT次
ORG100h
MOV CX,MOLT
MOV BX,20
XOR AX,AX
CLC
ADD1:
ADC AX,BX
LOOP ADD1
MOV ANS,AX
HLT
MOLT DW 5
ANS DW ?
3.8 在DATA之下存放100个无符号的8位数,找出其最大者并将其存放在KVFF单元。
ORG100h
XOR DL,DL
LEA DI,KVFF;
NEXT0:
LEA SI,BUFFER;
MOV CL,99; 比较次数为N-1次
NEXT1:
MOV AL,[SI];
INC SI;
CMP DL,AL;
JNC NEXT2;
MOV DL,AL; DL中始终存目前最大值
NEXT2:
DEC CL;
JNZ NEXT1;
MOV [DI],DL; 最大值存储
HLT
BUFFERDB ;自行定义100个数据
KVFF DB ?
3.9 若将数据按大小顺序排序,试编写程序..
解:
此处采用“冒泡法”予以处理:
ORG100h
LEA DI,BUFFER; 数据区
MOV BL,99; 外循环次数
NEXT0:
MOV SI,DI;
MOV CL,BL; 内循环次数
NEXT3:
MOV AL,[SI]; 读数
INC SI; 移动指针
CMP AL,[SI]; 比较
JNC NEXT5; 大于转NEXT5
MOV DL,[SI];
MOV [SI-1],DL;
MOV [SI],AL; 不大于互换
NEXT5:
DEC CL; 内循环次数减一
JNZ NEXT3;
DEC BL; 外循环次数减一
JNZ NEXT0
HLT
BUFFERDB自行定义100个字节型数据
3.10在BVFF单元中有一个BCD数A,试根据下列关系编写程序,计算结果存在DES中.
A<20,Y=3*A; A<60,Y=A-20; A>=60,Y=80.
ORG100h
MOV AL,BVFF
CMP AL,20
JL EX1
CMP AL,60
JL EX2
MOV AL,80
JMP STOP
EX1:
MOV BL,3
MUL BL
JMP STOP
EX2:
SUB AL,20
STOP:
MOV DES,AL
HLT
BVFF DB 8
DES DB ?
3.11址为DATAB开始的80个单元中,存放某班80个学生的某课程成绩,要求:
统计>=90分、80~89分、70~79分、60~69分、60分以下的人数,结果存放在BTRX开始的5个单元中
求平均成绩,结果存放在LEVEL中。
解:
寄存器使用分配:
90分以上在DH,80分以上在DL,70分以上在BH,60分以上在BL,60分以下在AH,总分、均分都在[DI]。
ORG100h
XOR AH,AH
XOR DX,DX ;统计结
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 微型计算机原理与接口技术 李伯成 微型计算机 原理 接口 技术 课后 习题 答案