微机原理第二课后作业第五八章朱金钧Word下载.docx
- 文档编号:19069229
- 上传时间:2023-01-03
- 格式:DOCX
- 页数:92
- 大小:484.39KB
微机原理第二课后作业第五八章朱金钧Word下载.docx
《微机原理第二课后作业第五八章朱金钧Word下载.docx》由会员分享,可在线阅读,更多相关《微机原理第二课后作业第五八章朱金钧Word下载.docx(92页珍藏版)》请在冰豆网上搜索。
MOVCX,LENGTHTABLE
CX=<
(4>
MOVSI,SIZETABLE
SI=<
(5>
MOVDI,LENGTHARRAYDI=<
CX=100(4>
SI=200(5>
3.下面定义的是一个数据段,请图示它们在存储器中的存放形式。
DATASEGMENT
A
1,2,3,4
B
‘ABCD'
C
4DUP(0>
N
EQU
12
X
33,0302H
Y
0ABCDH
DATAENDS
4.
【解】注:
括号中为段内偏移地址
(0000H>
1
(0008H>
C
(0011H>
03H
2
0CDH
3
0ABH
4
00H
(0004H>
(000CH>
N
(000DH>
X
17H
D
02H
试定义一个完整的数据段,首先将
10个压缩的BCD码29存放在ARRA^量字节
单元,紧接着把-28,6,45,39,3存放在ALPHA数组变量的字单元中,最后从字节变
量BUFFER^元开始预留100个空单元备用。
aFxXOOD8GfDXDiTa9E3d
【解】
ARRAYDB10DUP(29H>
ALPHADW-28,6,45,39,3
BUFFERDB100DUP(?
5.请定义一个结构,描述一个学生的简况。
该结构应含有以下内容:
姓名、年龄、性别、籍贯、民族、入学成绩、名次。
说明如何定义结构变量和引用结构变量。
aFxXOOD8GfRTCrpUDGiT
STUDENSTRUC
NAMEDW5DUP(?
AGEDB(?
SEXDW(?
HOMEPLAW10DUP(?
RACEDW5DUP(?
GRADEDB(?
SORTDB(?
STUDENTENDS
定义结构变量的格式:
结构变量名结构名〈字段值表〉
例如:
STU1STUDENT〈1,‘ZHANG'
〉引用结构变量的格式:
结构变量名.结构字段名,例如:
STU1.NAME
6.实现满足下面要求的宏定义。
任意两个单元中的数据相加存于第三个单元中。
任意8位寄存器中的数据转换为ASCII码并在屏幕上显示。
宏定义的代码段如下:
ADDMMACROM1,M2,M3
MOVAX,[M1]
ADDAX,[M2]
MOV[M3],AX
ENDM
设8位寄存器存储的是无符号数,最高位是百位。
宏定义的代码段如下:
ADDMMACROY
;
形式参数Y代表一个8位寄存器
MOV
AL
,Y
XOR
AH
,AH
DL
,100
DIV
ADD
,30H
,AL
存余数
,2
INT
21H
显示百位数
,10
显示十位数
AL,
30H
MOVDL,AL
MOVAH,2
显示个位数
INT21H
7.对下面程序进行注释,并说明其功能
DATA
SEGMENT
DB‘123ABC'
ENDS
CODE
ASSUMECS:
CODE,DS:
XCHGAL,DL
INCBX
LOOPLP
MOVAH,4CH
CODEENDS
ENDSTART
解】注释如下:
DATASEGMENT;
数据段开始
ADB‘123ABC'
DATAENDS;
数据段结束
CODESEGMENT;
代码段开始
START:
AX,DATA
DS,AX
装填数据段
LEA
BX,A
传送变量的地址
CX,6
AH,2
LP:
AL,[BX]
XCHG
AL,DL
B”、“C'
送屏幕显示
CX=6,循环6次
AH,4CH
返回DOS
代码段结束
END
START
源程序结束
程序的功能:
显示从
A开始的
6个字节单元中的字符。
将字符1、2、3、“A
系统功能调用,功能号:
2,
8.编程将CXDX作为双字联合右移四位<设CX为高16位),最高4位送入全1。
解】程序代码如下:
CODESEGMENT
CODE
MOVAX,CX
MOVCX,4
SHRAX,1
RCRDX,1LOOPLP
ORAX,0F000H
MOVCX,AX
MOVAH,4CHINT21H
9.编程把从A单元开始存放的3个单字节无符号数按递增顺序排序后存回原处
ADB3DUP(?
MOV
AX,DATA
DS,
AX
BX,
AL,
[BX]
CMPAL,[BX+1]
JAEEX1
CMP2:
CMPAL,
[BX+2]
JAEEX2
[BX]>
[BX+2],交换
JMP
CONT1
EX1:
XCHGAL,
[BX+1]
AL,[BX]
AL,[BX]
CMP2
EX2:
CONT1:
AL,[BX+1]
CMP
AL,[BX+2]
JB
CONT2
AL,[BX+2]
[BX+1]>
AL,[BX+1]
CONT2:
[BX+1],交换
10.试编写一段程序比较从ARRAYS始存放的3个16位有符号数。
根据比较结果置
FLAG标志。
如果3个数都不相等,置FLAG为0。
如果3个数中有2个数相等,置FLAG为1。
如果3个数都相等,置FLAG为2。
【解】程序代码如下:
ARRAYDW3DUP(?
FLAGDB?
MOVAX,DATA
MOVDS,AX;
BX,ARRAY
AX,[BX]
AX,[BX+2]
JE
EQU1
[BX]
=[BX+2]
DL,0
EQU1:
MOVDL
,1
CMPAX
,[BX+4]
EQU2
=[BX+4]
EQU2:
ADDDL
AX,[BX+2]
AX,[BX+4]
EQU3
CONT3
EQU3:
CONT3:
DL,3
JNZ
EQU4
SUB
DL,1
EQU4:
MOVFLAG,DL
返回
DOS
,执行MOVDL,1
,DL+1
=[BX+4],DL—1
MOVSUM,AX
MOVAH,4CH
请问:
(1>该程序完成的功能是。
(2>程序执行后,SUM单元的内容是。
(1>该程序完成的功能是计算0〜20的偶数和。
(2>程序执行后,SUM单元的内容是110。
12.从ARRAYS始的单元中存有10个16位无符号数,试编一完整程序找出其中最小
数并存入MIN单元。
aFxXOOD8Gf5PCzVD7HxA
ARRAY
DW0F454H,
4540H,0D214H,8354H,8210H,
0A673H,5656H,0021H,0567H,4228H
MIN
DW?
BX,ARRAY
CX,9
LP1:
INC
BX
JBCONT1
AX<[BX],转移
AX,[BX]
AX>
=[BX],AX
LOOPLP1
MOVMIN,AX
13.从DAT开始的数据区中放有100个8位的无符号数,编程统计其中奇数的个数,
将结果存入RESULT单元。
aFxX00D8GfjLBHrnAILg
DATDB26,45,44,32,90,2,1,81,2,120,5……
RESULTDB?
C0DESEGMENT;
C0DE,DS:
DS,AX
BX,DAT
AX,AX
DX,DX
DL,2
CX,100
LP1:
AL,[BX]
余数在AH中
CMPAH,0
JEC0NT1
INCDH
DH用作计数器
LOOP
LP1
RESULT,DH
AH,4CH
14.利用DOS系统功能调用,将键盘输入的小写字母转换成大写字母输出显示,直到输入“$”字符时停止输出。
aFxX00D8GfxHAQX74J0X
【解】调用1号系统功能,键入的字符送AL寄存器,并送屏幕显示输出。
调用2号系
统功能,将DL寄存器中的内容送屏幕显示输出。
程序代码如下:
aFxXOOD8GfLDAYtRyKfE
XORAX,AX
INPU:
MOVAH,1
键盘输入单字符送AL
BL,
‘$'
BL
EXT
20H
转换成大写字母
DL,
AH,
将DL中的字符送屏幕显示
INPU
EXT:
AH,
4CH
15.建立两个过程:
一个过程将16进制数变换成ASCII码,一个过程将ASCII码字
符在屏幕上显示输出。
aFxXOOD8GfZzz6ZB2Ltk
LIST
?
存储一个十六进制数(1位>
ASC
存储转换的ASCII码
DATA,ES:
CALL
CHANGE
OUTPTR
CHANGEPROC
AL,LIST
JA
NEXT1
AL>
9,转移
OR
JMPNEXT2
NEXT1:
ADDAL,37H
NEXT2:
MOVASC,AL
RET
CHANGEENDP
OUTPTRPROC
MOVDL,ASC
OUTPTRENDP
CODEENDS;
ENDSTART;
16.要求编写程序比较两个最大长度为100个字符的字符串ALFA1和ALFA2是否相等,若相等则输出显示“AllRight!
”,否则输出显示“Error!
”。
aFxXOOD8GfdvzfvkwMI1
【解】完成输出显示功能时,调用9号系统功能,功能是将指定的内存缓冲区中的字符串在屏幕上显示出来,缓冲区的字符串以“$”为结束标志。
aFxXOOD8Gfrqyn14ZNXI
LEN指定的内存中存储两字符串中长串的长度,否则,即使两串相等,由于字符
串后面的随机字符,将影响判断结果。
aFxXOOD8GfEmxvxOtOco
ALFA1
100DUP(?
ALFA2
RESULT1DB‘AllRight!
$'
RESULT2DB‘Error!
LEN
DB100
字符串长度
CODE,
DS:
DATA
ES,AX
装填附加段
BX,ALFA1
传送源串的地址
SI,BX
BX,ALFA2
传送目的串的地址
DI,BX
CX,CX
CL,LEN
REPNZCMPSB
JZ
EQQ
若ZF=1,说明两串相等,转EQQ
DX,RESULT2
输出显示“Error!
”
OUT1
EQQ:
LEADX
,RESULT1
输出显示“AllRight!
OUT1:
MOVAH,9
STOP:
CLD
清方向标志,使正向传送
17.有一个最大长度为80个字符的字符串STRING试编写程序找出第一个空格的位置<用00H-4FH表示),并存入CL中。
若该串无空格,则将OFFH存入CL中。
aFxXOOD8GfSixE2yXPq5
STRING
80DUP(?
>
LENDB80
CODE,DS:
ES,AX
AL,‘'
要查找的关键字<空格)
BX,STRING
传送串的地址
CL,LEN
REPNZSCASB
搜索关键字
JZFOUND
若ZF=1,说明找到,转FOUND
CL,0FFH
STOP
FOUND:
MOVAL
,LEN
SUBAL,CLMOVCL,AL
CL中是剩余的字符数
18.在AX中存放着压缩BCD码的十进制数。
要求:
将AH中的数转换成二进制数。
求AH与AL中数的和,将结果转换成ASCII码,然后在屏幕上显示出来。
MOVBX,AX
ANDAH,0FH
MOVAL,AH
MUL100
MOVDX,AX
MOVAH,BH
MOVCL,4
SHRAH,CL
MUL1000
ADDAX,DX
百位加千位结果存于DX中
ASCII码,然后在屏幕上显示出来。
程
保存AX中的数据
移位次数
(2>求AH与AL中数的和,将结果转换成
序代码如下:
千位移到AH低4位
ADDAH,30H
转换成ASCII码
MOVDL,AH
调用2号系统功能,输出单字符
取低4位
MOVAL,BL
SHRAL,CL
十位移到低4位
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 微机 原理 第二 课后 作业 第五 八章朱金钧