计算机原理习题4文档格式.docx
- 文档编号:22380703
- 上传时间:2023-02-03
- 格式:DOCX
- 页数:20
- 大小:25.92KB
计算机原理习题4文档格式.docx
《计算机原理习题4文档格式.docx》由会员分享,可在线阅读,更多相关《计算机原理习题4文档格式.docx(20页珍藏版)》请在冰豆网上搜索。
INCSI
LOOPLOP1
LOP2:
POPAX
MOV[SI],AX
LOOPLOP2
MOVCX,16
LEABX,BUF
LOP3:
MOVDL,[BX]
INCBX
MOVDH,DL
PUSHCX
MOVCL,4
SHRDL,CL
POPCX
ANDDL,0FH
CALLDISPLAY
MOVDL,DH
LOOPLOP3
MOVAX,4C00H
INT21H
DISPLAYPROC
CMPDL,09H
JBENEXT
ADDDL,07H
NEXT:
ADDDL,30H
MOVAH,02H
INT21H
RET
DISPLAYENDP
CODEENDS
ENDSTART
2.将8个16位无符号数相加,结果保存在32位无符号数SUM中;
SUMDD0
SUM:
DW100DUP(0)
CODE,DS:
DATA,SS:
STACK1
MOVDX,OFFSETMES1
MOVAH,09H
INT21H
LEABX,BUF
MOVDX,0000H
LOP:
MOVAX,[BX]
ADDWORDPTRSUM,AX
ADCWORDPTRSUM+2,DX
INCBX
LOOPLOP
MOVCX,4
LEABX,SUM
INCBX
MOVDH,DL
PUSHCX
MOVCL,4
SHRDL,CL
POPCX
ANDDL,0FH
CALLDISPLAY
MOVDL,DH
LOOPLOP3
MOVAX,4C00H
INT21H
DISPLAYPROC
CMPDL,09H
JBENEXT
ADDDL,07H
ADDDL,30H
3.以十进制形式在计算机屏幕上显示内存中的一个8位有符号数,例如:
若内存单元中存放的数据为7FH,则在屏幕上显示+127,若内存单元存放的数据为0FFH,则应在屏幕上显示-1;
DATASEGMENT
VARDB0FFH
STR1DB'
THERESULTIS:
$'
SS_SEGSEGMENTSTACK
SS_SEGENDS
CODESEGMENT
CODE,DS:
DATA,SS:
SS_SEG
MOVAX,DATA
MOVDS,AX
LEADX,STR1
MOVDL,'
+'
CMPVAR,0
JGENEXT
-'
NEGVAR
MOVAH,02H
MOVAL,VAR
MOVBL,10
MOVCL,0
ANDAH,0
DIVBL
PUSHAX
INCCL
CMPAL,0
JNZLOP1
POPAX
MOVDL,AH
MOVAH,2
LOOPLOP2
MOVAX,4C00H
4.从键盘输入一个4位十进制数,然后以16进制形式显示在屏幕上,试编程;
例如:
输入1024在屏幕上应该显示0400H
INPUTDATA:
BUFDB20
DB4
DB4DUP(?
)
STR2DB0AH,0DH,'
'
'
DB100DUP(0)
MOVAH,0AH
LEADX,BUF
MOVCX,03H
LEASI,BUF+2
ANDBX,0H
MOVDL,0AH
MOVAL,[SI]
SUBAL,30H
MULDL
POPCX
ADDBX,AX
LOOPLOP1
ANDCH,00H
MOVCL,[SI]
SUBCL,30H
ADDBX,CX
LEADX,STR2
MOVAX,BX
MOVCL,04H
MOVDH,04H
MOVDL,00H
AAA1:
ANDAX,000FH
DECDH
INCDL
SHRBX,CL
CMPDH,0
JAAAA1
MOVCL,DL
BBB:
POPDX
CMPDL,09H
JBNEXT
ADDDL,07H
LOOPBBB
MOVDL,'
H'
MOVAX,4C00H
5.数据段中存放有一个无符号字数据VAR,将其转换成非压缩格式的BCD码,存于BUF开始的单元中(高位在前);
若VAR为0800H,则转换后(BUF)=20H(BUF+1)=48H
DATASEGMENTPARA
VARDW0800H
BUFDB2DUP(0)
DW100DUP(0)
CODESEGMENTPARA
MOVCX,16
MAIN1:
SHLVAR,1
MOVBX,4
MOVCX,5
MAIN2:
MOVAL,BUF[BX]
ADCAL,AL
AAA
MOVBUF[BX],AL
DECBX
LOOPMAIN2
LOOPMAIN1
EXIT:
CODEENDS
6.内存中以str1和str2开始分别存放了两个字符串,结束符为NULL(ASCII码为0),将str2连接到str1后,形成1个字符串,并将连接后的字符串str1输出到屏幕上;
STR1DB'
GOODMORNING,'
00H
STRDB50DUP(0)
STR2DB'
MrWANG!
0AH,0DH,00H
LEASI,STR1
CMPAL,00H
JEJP1
JP2:
JAJP2
JP1:
MOVCX,01H
LEABX,STR2
MOVAH,[BX]
MOV[BX],AH
CMPAH,00H
JEJP3
MOV[SI],AH
JP4:
INCCX
JAJP4
JP3:
MOV[SI],BYTEPTR'
MOVAX,4C00H
CODEENDS
7.统计10个有符号字节数中,大于0、小于0、等于0的个数,分别存放在NUM1、NUM2、NUM3三个变量中,并找出最大值、最小值分别存放到MAX、MIN变量中,再求10个数的和,将结果存放到16位有符号数SUM中。
NUMDB0F0H,03H,0B4H,0AH,0AAH,00H,80H,7FH,99H,21H
COUNTEQU($-NUM)
ORG0010H
NUM1DB0
NUM2DB0
NUM3DB0
MINDB0
MAXDB0
SUMDW0
LEASI,NUM
MOVBX,0000H
CMPAL,0
JGDA
JLXIAO
JEDENG
DA:
INCBH
JMPAAA1
XIAO:
INCBL
JMPAAA1
DENG:
INCDH
LEASI,NUM1
MOV[SI],BH
LEASI,NUM2
MOV[SI],BL
LEASI,NUM3
MOV[SI],DH
MOVCX,COUNT-1
LEABX,NUM
MOVAL,[BX]
CMPAL,[BX]
JLENEXT
XCHGAL,[BX]
MOV[BX-1],AL
LOOPMAIN2
POPCX
LOOPMAIN1
LEASI,MIN
MOVAL,NUM
MOV[SI],AL
LEASI,MAX
MOVBL,NUM+9
MOVSI,OFFSETNUM
MOVCX,COUNT
MOVAX,0
ANDBX,0
MOVBL,[SI]
ADDAX,BX
INCSI
LEASI,SUM
MOV[SI],AX
ENDSTART
8若程序的数据段定义如下,写出各指令语句独立执行后的结果。
DSEGSEGMENT
DATA1DB10H,20H,30H
DATA2DW10DUP(?
StringDB‘123’
DSEGENDS
(1)MOVAL,DATA110H->
AL
(2)MOVBX,offsetDATA2DATA2代表的首地址赋给BX
(3)LEASI,StringString代表的首地址赋给BX
ADDDI,SISI+DI->
DI
9假设数据项定义如下:
DATA1DB‘HELLO!
GOODMORNING’
DATA2DB20DUP(?
用串操作指令编写程序段,使其分别完成一下功能。
(1)从左到右将DATA1中的字符串传送到DATA2中;
LEASI,DATA1
LEADI,DATA2
MOVCX,20
CLD
REPMOVSB
(2)传送完后,比较DATA1和DATA2中的内容是否相同;
REPECMPSB
(3)把DATA1中的第3个字节和第四个字节装入AX;
ADDSI,2
LODSW
(4)将AX的内容存入DATA2+5开始的字节单元中;
ADDDI,5
STOSW
10执行下列指令后,AX寄存器中的内容是多少?
TABLEDW10,20,30,40,50
ENTRYDW3
……
MOVBX,OffsetTABLE
ADDBX,ENTRY
MOVAX,[BX][AX]=1400H
存储器
11图示以下数据段在存储器中的存放形式;
10H
34H
07H
09H
42H
00H
48H
45H
4CH
4FH
21H
CDH
ABH
DATA1 DB10H,34H,07H,09H
DATA2 DW2DUP(42H)
DATA3DB‘HELLO!
’
DATA4EQU12
DATA5DDABCDH
12阅读下边的程序段,试说明它实现的功能是什么?
DATA1DB'
ABCDEFG'
AAAA:
MOVBX,OFFSETDATA1
MOVCX,7
MOVAH,2
MOVAL,[BX]
XCHGAL,DL
INCBX
INT21H
LOOPNEXT
MOVAH,4CH
ENDAAAA
此程序功能为:
输出字符串‘ABCDEFG’。
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 计算机 原理 习题