




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
(微机原理及应用)编程题-试题集LtD重庆科技学院试题库系统试题库导出试题微机原理及应用-编程题(43题)题序:0017题型:06难度:01分值:10.0章号:03节号:02知识点:;8086/8088指令系统题干:变量DATAX和DATAY定义如下:
DATAX
DW
0148H
DW
2316H
DATAY
DW
0237H
DW
4052H试编写一个程序段,实现将DATAX和DATAY两个字数据相乘(用MUL)。答案:
解:
(1)
MOV
AX,DATAXMUL
DATAYMOV
DATAY,AXMOV
DATAY+2,DX题序:0018题型:06难度:02分值:10.0章号:03节号:02中的两个双字数据相加,和存放在DATAY和答案:
解:
(1)
MOV
AX,DATAXADD
AX,DATAYMOV
BX,DATAX+2ADD
BX,DATAY+2MOV
DATAY,AXMOV
DATAY+2,BX题序:0020题型:06难度:03分值:10.0章号:03节号:02知识点:;8086/8088指令系统题干:变量N1和N2均为2字节的非压缩BCD数码,请写出计算N1与N2之差的指令序列。答案:
解:
MOV
AX,0MOV
AL,N1+1SUBAL,N2+1AASMOV
DL,ALMOV
AL,N1SBBAL,N2AASMOV
DH,AL题序:0006题型:06难度:02分值:10.0章号:04节号:02知识点:;汇编语言及程序设计题干:编写程序实现对两个存储区中的字进行比较。如找到一对不同的字,则退出,此时,ZF为0,DI指向此字;如两个存储区中所有的字都相同,则退出程序时,CX中值为0,ZF为1。答案:
解:
MATT:
MOV
SI,OFFSETSOURCE
;源区首址
MOV
DI,OFFSETTARGET
;目的区首址
MOV
CX,NUMBER
JCXZ
EXIT
;如CX为0,则结束
PUSH
CX
;保存有关寄存器
PUSH
SI
PUSH
DI
CLD
;清方向标志
REPE
CMPSW
JZ
MATCH
;比较
PUSHF
;ZF为1,则转移
SUB
DI,2
;ZF为0,则DI指向次字
POPF
JMP
EXIT
;推出
MATCH:
POP
DI
;恢复寄存器
POP
SI
POP
CX
EXIT:
RET题序:0015题型:06难度:02分值:10.0章号:04节号:02知识点:;汇编语言及程序设计题干:根据下列要求编写一个汇编语言程序::(1)代码段的段名为COD_SG(2)数据段的段名为DAT_SG(3)堆栈段的段名为STK_SG(4)变量HIGH_DAT所包含的数据为95(5)将变量HIGH_DAT装入寄存器AH,BH和DL(6)程序运行的入口地址为START答案:
解:
DAT_SG
SEGEMNT
HIGH_DAT
DB
95DAT_SG
ENDS;STK_SG
SEGMENT
DW
64DUP(?)STK_SG
ENDS;COD_SG
SEGMENTMAIN
PROC
FARASSUMECS:COD_SG,DS:DAT_SG,SS:STK_SGSTART:
MOV
AX,DAT-SG
MOV
DS,AX
MOV
AH,HIGH_DAT
MOV
BH,AHMOV
DL,AHMOV
AH,4CHINT
21HMAIN
ENDPCOD_SGENDS
END
START题序:0026题型:06难度:02分值:10.0章号:04节号:02知识点:;汇编语言及程序设计题干:已知整数变量A和B,试编写完成下述操作的程序:(1)若两个数中有一个是奇数,则将该奇数存入A中,偶数存入B中;(2)若两个数均为奇数,则两数分别加1,并存回原变量;(3)若两个数均为偶数,则两变量不变。答案:
解:
dsegsegment
a
dw
?
b
dw
?dsegendscseg
segmentmain
proc
farassume
cs:cseg,ds:dsegstart:
push
ds
sub
ax,ax
push
ax
mov
ax,dseg
mov
ds,axbegin:
mov
ax,a
mov
bx,b
xor
ax,bx
test
ax,0001
jz
class
test
bx,0001
jz
exit
xchg
bx,a
mov
b,bx
jmp
exitclass:
test
bx,0001
jz
exit
inc
b
inc
aexit:retmain
endpcseg
ends
end
start题序:0001题型:06难度:03分值:10.0章号:04节号:02知识点:;汇编语言及程序设计题干:在DS段中有一个从TABLE开始的由160个字符组成的链表,设计一个程序,实现对此表进行搜索,找到第一个非0元素后,将此单元和下一单元清0。答案:
解:
MOV
CX,SEGTABLE
MOV
DS,CX
;将段地址送DS
MOV
SI,OFFSETTABLE;表偏移量送SI
MOV
CX,160
;字节数
XOR
AL
NEXT:
CMP
AL,[SI]
JNE
EXIT1
INC
SI
LOOP
NEXT
EXIT1:MOV
[SI],AL
INC
SI
MOV
[SI],AL题序:0004题型:06难度:03分值:10.0章号:04节号:02知识点:;汇编语言及程序设计题干:用循环控制指令设计程序段,从60H个元素中寻找一个最大值,结果放在AL中。答案:
解:
MOV
SI,OFFSETDATA1;将数据起始地址送SI
MOV
CX,5FH
;有60H-1次循环
MOV
AL,[SI]
;将第一个元素放AL中
COMPARE:INC
SI
CMP
AL,[SI]
JL
XCHMAX
JMP
NEXT
XCHMAX:
MOV
AL,[SI]
NEXT:
LOOPCOMPARE题序:0007题型:06难度:03分值:10.0章号:04节号:02知识点:;汇编语言及程序设计题干:编写程序实现在TABLE为起始地址的100个字符长度的表中检索“$"字符。答案:
解:
START:
MOV
CX,SEGTABLE
;表段地址送ES
MOV
ES,CX
MOV
DI,OFFSETTABLE
;表偏移量送DI
MOV
AL,'$'
;检索的关键字
MOV
CX,64H
;检索的字节数
PUSH
DI
;保存起始地址
CLD
清除方向标志
REPNE
SCASB
;检索
JNZ
NFOUN
;如未找到,则转移
SUB
DI,1
找到,则指向字符
JMP
EXIT
NFOUN:
POP
DI
;恢复起始地址
EXIT:
RET
题序:0009题型:06难度:03分值:10.0章号:04节号:02知识点:;汇编语言及程序设计题干:编写程序实现两个16位非组合BCD码的数相加。答案:
解:
ANBCD:
MOV
CH,AH;进入程序段时,AX中为第二个操作数
ADD
AL,BL;BX中为被加数,实现低8位相乘
AAA
XCHGAL,CH
ADC
AL,BH;实现高8位相加
AAA
MOV
AH,AL;和保存在AX中
MOV
AL,CH
RET题序:0010题型:06难度:03分值:10.0章号:04节号:02知识点:;汇编语言及程序设计题干:编写程序段设计一个实现16位非组合BCD码减法的程序。答案:
解:
SUBCD:
MOV
CH,AH
;AX-BX->AX,为非组合BCD码
SUB
AL,BL
AAS
XCHGAL,CH
SBB
AL,BH
AAS
MOV
AH,AL
MOV
AL,CH
RET题序:0011题型:06难度:03分值:10.0章号:04节号:02知识点:;汇编语言及程序设计题干:编写程序实现两个16位组合BCD码相减,进入程序时,BX中为减数,AX中为被减数,程序执行后,结果在AX中。答案:
解:
STASUB:MOV
CH,AH;保存高8位
SUB
AL,BL;低8位相减
DAS
;十进制调整
XCHGAL,CH
SBB
AL,BH;高8位相减
DAS
MOV
AH,AL;结果在AX中
MOV
AL,CH
RET题序:0012题型:06难度:03分值:10.0章号:04节号:02知识点:;汇编语言及程序设计题干:编写程序实现两个16位组合BCD码相加。进入程序时,BX中为加数,AX中为被加数,程序执行后,结果在AX中。答案:
解:
STAADD:MOV
CH,AH
;AX+BX->AX,为组合BCD码
ADD
AL,BL
DAA
XCHGAL,CH
ADC
AL,BH
DAA
MOV
AH,AL
MOV
AL,CH
RET题序:0013题型:06难度:03分值:10.0章号:04节号:02知识点:;汇编语言及程序设计题干:编写程序将一个8位二进转换为2位BCD数字,进入程序时,AL中为二进制数,退出程序时,如CF为0,则AL中为BCD数字,如CF为1,则表示由于输入值超出范围故结果无效。答案:
解:
START:
CMP
AL,99;是否超出范围?
JBE
STRAT
STC
;是,则转EXIT,并给CF置1
JC
EXIT
STRAT:
MOV
CL,10;10作为除数
XOR
AH,AH
CBW
;将AL中数扩展到AH
DIV
CL
;除法结果AL中为高位,AH中为低位
MOV
CL,4
SHL
AL,CL;左移4位
OR
AL,AH;合成BCD码在AL中
EXIT:
RET
题序:0014题型:06难度:03分值:10.0章号:04节号:02知识点:;汇编语言及程序设计题干:编写程序用XLAT指令将小于16的二进制数转换成ASCII表示的16进制数。答案:
解:
START:
JMP
BINASCASCII
DB
'0123456789ABCDEF'BINASC:PUSHBX
AND
AL,0FH
;清除AL中高4位
LEA
BX,ASCII;BX指向ASCII表
XLAT
;转换为ASCII码
POP
BX
RET题序:0030题型:06难度:03分值:10.0章号:04节号:02知识点:;汇编语言及程序设计题干:编写完整的8086汇编程序:将字符缓冲区A的字符'1234567890'倒序存放到缓冲区B中。答案:
解:
DSEG
SEGMENTA
DB
'1234567890'DSEG
ENDSESEG
SEGMENT
B
DB
10
DUP(?)ESEG
ENDSCSEG
SEGMENT
ASSUME
CS:CSEG,DS:DSEG,ES:ESEGSTART:
MOV
AX,DSEG
MOV
DS,AX
MOV
AX,ESEG
MOV
ES,AX
LEA
SI,A
LEA
DI,B
ADD
DI,9
MOV
CX,10
MOVE:
CLD
LODSB
STD
STOSB
LOOP
MOVE
MOV
AH,4CH
INT
21HCSEG
ENDSEND
START
题序:0031题型:06难度:03分值:10.0章号:04节号:02知识点:;汇编语言及程序设计题干:编写完整的8086汇编程序:查表求X(0-9)的立方并将结果存放到变量XXX中去。答案:
解:
DATA
SEGMENTTAB
DW
0,1,8,27,64,125,216,343,512,729X
DB
8XXX
DW
?DATA
ENDS
CODE
SEGMENTASSUMECS:CODE,DS:DATA
START:MOV
AX,DATA
MOV
DS,AX
;为DS送初值
MOV
AL,X
ADD
AL,AL
MOV
BL,AL
;求立方表的偏移
MOV
BH,0
MOV
AX,TAB[BX]
;查表
MOV
XXX,AX
;保存
MOV
AH,4CH
;返回DOS
INT
21HCODE
ENDSENDSTART题序:0033题型:06难度:03分值:10.0章号:04节号:02知识点:;汇编语言及程序设计题干:编写程序,计算下面函数的值。答案:
解:
DATA
SEGMENT
X
DW
34
S
DW
?DATA
ENDSCODE
SEGMENT
ASSUME
CS:CODE,DS:DATASTART:MOV
AX,DATA
MOV
DS,AX
MOV
AX,X
;将X送到AX中
CMP
AX,0
;(AX)>0吗?
JL
DOUB
;是,转向doub
CMP
AX,10
;否,(ax)<10吗?
JLE
TRIB
;是,转向trib
SAL
AX,1
;否,乘以4
SAL
AX,1
JMP
EXITDOUB:SAL
AX,1
;乘以2
JMP
EXITTRIB:SAL
AX,1
;乘以3
ADD
AX,XEXIT:MOV
S,AX
;保存结果
MOV
AH,4CH
;结束
INT
21HCODE
ENDS
END
START题序:0035题型:06难度:03分值:10.0章号:04节号:02知识点:;汇编语言及程序设计题干:已知在内存中从BLOCK单元起存放有20个带符号字节数据(-7,1,12,-90,-70,34,-1,56,45,-12),统计其中负数的个数并放入COUNT单元。答案:
解:
DATA
SEGMENT
BLOCK
DB
-7,1,12,-90,-70,34,-1,56,45,-12
CN
EQU
$-BLOCK
COUNT
DB
?DATA
ENDSCODE
SEGMENT
ASSUME
DS:DATA,CS:CODESTART:MOV
AX,DATA
MOV
DS,AX
MOV
DL,0
LEA
SI,BLOCK
MOV
CX,CNLP:
MOV
AL,[SI]
TESTAL,80H
JZ
NEXT
INC
DLNEXT:INC
SI
LOOP
LP
MOV
COUNT,DL
MOV
AH,4CH
INT
21HCODE
ENDS
END
START题序:0036题型:06难度:03分值:10.0章号:04节号:02知识点:;汇编语言及程序设计题干:编写程序先判断数据段中Buffer1单元中的字母是否是大写字母,若是,将其转换为对应的小写字母。答案:
解:
DATA
SEGMENT BufferDB?
DATA
ENDSCODE
SEGMENT
ASSUME
DS:DATA,CS:CODESTART:MOV
AX,DATA
MOV
DS,AX LEABX,OFFSETBuffer MOVAL,[BX]
CMP
AL,'A'
JB
EXIT
CMP
AL,'Z'
JA
EXIT
ADD
AL,20H
MOV
DL,ALEXIT:MOV
AH,02H
INT
21HCODE
ENDS
END
START题序:0037题型:06难度:03分值:10.0章号:04节号:02知识点:;汇编语言及程序设计题干:试定义将一位十六进制数转换为ASCII码的宏指令。答案:
解:
HEXTOA
MACRO
AND
AL,0FHCMP
AL,9JNA
HEXTOA1ADD
AL,7HHEXTOA1:ADD
AL,30HENDM题序:0041题型:06难度:03分值:10.0章号:04节号:02知识点:;汇编语言及程序设计题干:用循环控制指令设计程序段,从100个元素中寻找一个最大值,结果放在AL中(假设数据存放在起始地址为DATA1开始的单元中)。答案:
解:
MOV
SI,OFFSETDATA1MOV
CX,99
MOV
AL,[SI]
L1:INC
SICMP
AL,[SI]JL
L2JMP
L3
L2:MOV
AL,[SI]L3:LOOPL1HLT题序:0042题型:06难度:03分值:10.0章号:04节号:02知识点:;汇编语言及程序设计题干:在DS段中有一个从TABLE开始的由1000个字符组成的链表,设计一个程序段,实现对此表的搜索,找到第一个非0元素后,将此单元和下一个单元清0。答案:
解:
MOV
CX,SEGTABLEMOV
DS,CX
;将段地址送DSMOV
SI,OFFSETTABLE;表偏移量送SIMOV
CX,1000
;字节数XOR
AL,ALL1:CMP
AL,[SI]JNE
L2INC
SILOOP
L1L2:MOV
[SI],ALINC
SIMOV
[SI],AL题序:0043题型:06难度:03分值:10.0章号:04节号:02知
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- GB/T 30578-2025常压储罐基于风险的检验及评价
- 桥梁知识培训日程安排课件
- 2025年电子商务网站开发工程师招聘模拟题集
- 2025年行车安全法规测试题集
- 2025年初级舞蹈教师职业认证考试模拟题
- 2025年政府事务协调与管理能力提升题集
- 桑蚕丝面料知识培训
- 2026届福建龙海市第二中学高一化学第一学期期末复习检测试题含解析
- 2025年网络游戏公司运营总监竞聘面试技巧与常见问题解答
- 2025年注册验船师资格考试(A级船舶检验专业基础环境与人员保护)全真冲刺试题及答案一
- 湖北省圆创高中名校联盟2026届高三第一次联合测评 语文试卷(含答案)
- 医务人员职业道德准则理论试题
- 定额〔2025〕1号文-关于发布2018版电力建设工程概预算定额2024年度价格水平调整的通知
- 非标设备检验标准
- 皖2015s209 混凝土砌块式排水检查井
- 外墙涂料工程技术标书
- 教学课件-信号智能电源屏(鼎汉)的简介与维护
- CML慢性髓系白血病医学教学课件
- 临床实习带教工作总结
- 老年营养不良
- 【公开课】社区教案
评论
0/150
提交评论