微机原理经典习题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
1、当WR=1,RD=0,M/IO=1时,表示CPU当前正在进行读存储器操作。
2、已知CS=1055H,DS=250AH,ES=2EF0H,SS=8FF0H,
DS段有一操作数,其偏移地址=0204H,
1)画出各段在内存中的分布
2)指出各段首地CS:10550H DS:250A0H
ES:2EF00H SS:8FF00H
3)该操作数的物理地址=?
解:各段分布及段首址见右图所示。
操作数的物理地址为:
250AH×10H+0204H = 252A4H
3、若已知(SS)=1000H、(SP)=2000H;则堆栈段的段首地址=?1000H 栈顶地址=?12000H
若现在把1234H送入堆栈,则它所在的存储单元地址=? 1988H 若该段最后一个单元地址为2FFFH,则栈底地址=?12FFFH
4、MOV AX,[3102H]
AL=(3102H) , AH=(3103H)
如果(DS)=2000H, (23012H) = CDH, (23013H) = ABH;指令执行后,AX=? ABCDH
5、MOV AX,[SI]
若 (DS)=6000H, (SI)=1200H, (61200H)=44H, (61201H)=33H
则指令执行后,(AX)=3344H。
7、保留AL中低4位,高4位清0。
AND AL, 0FH
AL中有字符’a’~’z’, 将其转换成大写。
A N D A L,01011111B
8、把A H和A L中的非压缩B C D码组合成压缩的B C D码,放到A L中。
M O V C L,4
S H L A H,C L
O R A L,A H
9、把A X寄存器清零。
①M O V A X,0②X O R A X,A X
③A N D A X,0④S U B A X,A X
10、把A L中的数x乘10
S A L A L,1;2x
M O V A H,A L
S A L A L,1;4x
S A L A L,1;8x
A D D A L,A H;8x+2x=10x
11、(BX)=84F0H,把 (BX) 中的 16 位数每 4 位压入堆栈
MOV CH, 4 ; 循环次数
MOV CL, 4 ; 移位次数
NEXT:
ROL BX, CL
MOV AX, BX
AND AX, 0FH
PUSH AX
DEC CH
JNZ NEXT
12、用串传送指令实现200个字节的数据传送:L E A S I,M E M1
L E A D I,M E M2
M O V C X,200
C L D
R E P M O V S B
13、把从A000H开始的2K B内存单元清零。
程序段如下:
M O V D I,0A000H
M O V A X,0
M O V C X,1024
C L D
R E P S T O S W
14、从一个字符串中查找一个指定的字符
mess db ‘COMPUTER’
lea di, mess
mov al, ‘T’
mov cx, 8
cld
repne scasb
15、比较两个字符串,找出不相匹配的地方
lea si, mess1
lea di, mess2
mov cx, 8
cld
repe cmpsb
16、α、β是双精度数,分别存于 DX,AX 及 BX,CX 中,
α > β时转 L1 ,否则转 L2
CMP DX, BX
JG L1
JL L2
CMP AX, CX
JA L1
L2:
……
L1:
……
18、给1A000H开始的256个内存单元均减去1,若发现某个单元减为0则立即退出循环,其后的单元不再减1。程序段如下:(逻辑地址为1A00:0H)
M O V A X,1A00H
M O V D S,A X;1A00H段
M O V D I,-1
M O V C X,256
G O O N:I N C D I
D E C B Y T E P T R[D I]
L O O P N Z G O O N
H L T
21.说明下面两个定义的不同之处:
DB ‘AB’ ;41H在低字节,42H在高字节
DW ‘AB’
22.T A B L E D B10D U P(?)
B U F F E R D W T A B L E,$+3
设T A B L E的偏移地址为0080H,则汇编后$+3的内容为008f h
23. 求AX和BX中两无符号数之差的绝对值,结果放在内存200H单元中。
MOV AX,[300H]
MOV BX,[302]
SUB AX,BX
JA AA
NEG AX
AA:MOV [200H],AX
INT 20H
24.BUF中有N个有符号数,分离其中的正负数,分别送入BUF1和BUF2中。
这是一个循环次数已知的程序设计,用计数循环完成。DATA SEGMENT
BUF DB 12H, 34H, -56H, -98H, 096H, 68H, 56H, 80H
N=$-BUF
BUF1 DB N DUP(0)
BUF2 DB N DUP(?)
DATA ENDS
CODE SEGMENT
ASSUME CS:CODE,DS:DATA
START:MOV DX,DATA
MOV DS,AX
LEA SI,BUF
LEA DI,BUF1
LEA BX,BUF2 MOV CX,N
AA:MOV AL,[SI]