资源描述
1章
1.中央处理器CPU由哪几部分电路组成?(运算器、控制器、内部寄存器)
2.冯.诺依曼计算机体系结构的基本思想是?(1。以二进制形式表示指令和数据。2。程序和数据事先存放在储存器中,计算机在工作时能够高速地从储存器中取出指令加以执行。3。由运算器、控制器、储存器、输入设备和输出设备等五大部件组成计算机硬件系统.)
3.什么是总线?(总线是指计算机中各功能部件间传送信息的公共通道,是微型计算机的重要组成成分。)
4.什么是计算机的字长?(计算机一次能处理的最大数据长度(二进制))
5.计算机系统组成由哪些内容?(P4)
2章
1.(120。75)10=()2=()8=()16
2.设机器数[X]补=11010100,X=? [Y]补=00010100,Y=?[X — Y]补=?
3.写出字符‘136’和‘AB’的ASCII码。ASCII码为07H、0DH、0AH的用途?
4.73的BCD码是(写出二进制和十六进制二种形式)?机器数为26H,若它是BCD码,对应的十进制是?
5.设A=200,B=311Q,C=OC9H,写出它们之间的大小关系。
3章
1.几个不同的处理器具有1G、4GB、16G的寻址能力,它们各具有几条地址线?(2n=容量)
2.8086的AD15~AD0 是?在T1—T4是如何传送信息的?(P43T1—地址,T2-T4数据)
地址/数据分时复用引脚。传送地址时单相输出,传送数据时双向输入或输出。T1状态时做地址线用,T2-T4时传送数据.
3.在8086复位后各寄存器的值有何是?第一条指令的地址是?
标志寄存器:0000H IP0000H CS:FFFFH DS:0000H SS:0000H ES:0000H
指令列队缓冲器:空 其余寄存器 0000H
4.8086处理器处理动作的最小时间单位是?(1个时钟或1个T)
5.通过INTR(可屏蔽中断请求信号,NMI非屏蔽中断请求信号)向86CPU请求中断后,CPU是在当前总线周期完、还是指令周期完响应这一请求?通过HOLD请求使用总线后,CPU又是在哪个时间响应这一请求?(P43,46.①时钟周期②总线周期③指令周期)
INTR:高电平有效.CPU在每个指令周期的最后一个时钟周期检测该信号是否有效.
HOLD:总线保持请求信号,输入。当CPU接收到HOLD信号后,这时如果CPU允许让出总线,就在当前总线周期完成时,在T4状态发出高电平有效的HLDA信号给以响应。
6.8086和8088CPU指令队列出现几个空字节时,开始从内存取出后续指令放入队列?为什么它们开始取指令时的空字节数会有区别?(P37,86是16位机,外总线16位,具有一次2字节的传送能力,每2B空时用一次总线传送可以省时省操作)
7.8086CPU的堆栈,数据进栈或出栈时,栈顶地址是如何变化的?最小变化量是多少?
8.若当前DS=2500H,CS=2700H,问数据段最大是多少字节?(27000H—25000H)
9.8086的引脚ALE、M/IO#、MN/MX#、DT/R#的作用是?
ALE:地址锁存允许信号,输出。M/IO#:储存器I/O端口控制信号,输出。高电平表示CPU正在和储存器进行数据传送。低电平表明CPU正在和输入/输出设备进行数据传送。
10.标志寄存器中的CF、ZF、OF和PF各是什么标志?简述其主要用途.(P40—)
CF(Carry Flag)进位标志:用于反映运算是否产生进位或借位。如果运算结果的最高位产生一个进位或借位,则CF置1,否则置0.运算结果的最高位包括字操作的第15位和字节操作的第7位.移位指令也会将操作数的最高位或最低位移入CF.
PF(Parity Flag)奇偶标志:用于反映运算结果低8位中“1”的个数。“1”的个数为偶数,则PF置1,否则置0。
AF(Auxiliary Carry Flag)辅助进位标志:在字节操作时低半字节向高半字节进位或借位,字操作时低字节向高字节进位或借位,AF置1,否则置0.
ZF(Zero Flag)零标志:用于判断结果是否为0。运算结果0,ZF置1,否则置0。
SF(Sign Flag)符号标志:用于反映运算结果的符号,运算结果为负,SF置1,否则置0。因为有符号数采用补码的形式表示,所以SF与运算结果的最高位相同。
OF(Overflow Flag)溢出标志:反映有符号数加减运算是否溢出.如果运算结果超过了8位或者16位有符号数的表示范围,则OF置1,否则置0。
控制标志:
TF(Trap Flag)陷阱标志:当TF被设置位1时,CPU进入单步模式,所谓单步模式就是CPU在每执行一步指令后都产生一个单步中断.主要用于程序的调试.8086/8088中没有专门用来置位和清零TF的命令,需要用其他办法。
IF(Interrupt Flag)中断标志:决定CPU是否响应外部可屏蔽中断请求.IF为1时,CPU允许响应外部的可屏蔽中断请求。
DF(Direction Flag)方向标志:决定串操作指令执行时有关指针寄存器调整方向。当DF为1时,串操作指令按递减方式改变有关存储器指针值,每次操作后使SI、DI递减。
11.8086CPU最小与最大工作方式是指?有何特点?(P45-46单处理机系统,多处理机系统;用MN/MX#切换,系统控制信号)
当MN/MX#接高电平时,系统工作于最小方式,即单处理器方式,适用于较小规模的微机系统.当MN/MX#接低电平时,系统工作于最大方式,即多处理器方式.
最小工作方式下,控制信号可以直接从CPU获得,不需要外加电路.最大方式是多处理器方式,需要协调主处理器和协处理器的工作。
12.8086中的20位物理地址加法器的作用是?(产生20位的物理地址。)
13.在8086CPU进行存储器写操作,端口读操作时,M/IO#,WR#,RD#引脚的状态(#表示低电平)?(P44,46)
M/IO#:存储器写操作高电平,端口读操作低电平。
WR#:低电平写
RD#:地电平读
14.READY信号是输入还是输出?其用途是?(P44调整CPU的总线周期(在T3后插入TW))
READY:输入,高电平有效.CPU在每个总线周期的T3状态对READY引脚采样,若为高电平,说明数据已经准备好;若为低电平,说明数据还没有准备好,CPU在T3状态之后自动插入一个或几个等待状态TW,直到READY变为高电平,才能进入T4状态,完成数据传送过程,从而等待结束当前周期.
15.16位机系统的存储器是按16位组织的,16位的数据怎样存储才是规则的?为什么?在32位机中规则字又是如何存储的?(P52—54,字地址)
从偶地址开始储存双字节的字为规则字。因为只要一个总线周期就可以访问双字节。32位机是能被4整除的地址开始储存四个字节的字。
16.流水线的特点?CPU与主存储器间的高速缓冲存储器Cache的作用是?8086是什么结构?(各级并行操作。提高了CPU读取存储器的等效速度,二级流水线(BIU、EU))。
4章
指令格式,寻址方式,指令功能、用法
1. 判断指令是否有错误(参P158-2)
PUSH AL
ADD [BX],AL
ROL BX,CX
AND 81H,AL
SHL AX,CL
MOV DS,0
XCHG AH,AL
MOV BP,AL
MOV [200H],20H
MOV [BX],[0200H]
MOV AX,[DI +BX]
MOV CS,AX
INC [BX]
MOV [DI],[SI]
MOV BX,[BX]
MOV DS,BX
MOV BYTE PTR [BX],10H
POP CS
MOV [SI],100
CMP [SI],100
2.是非判断
1.立即数可以直接送给段寄存器、存储器.
2.INTR和NMI都是中断请求信号,但INTR的请求是不能被屏蔽的。
3.指令MOV AX,3 AND 5,汇编后变为MOV AX,1.
4.立即寻址方式不能用于目的操作数字段。
5.OF用来表示带符号数的溢出,CF可以表示无符号数的溢出。
6.8086在访问存储器时,总是用DF标志决定方向。
7.在8086的总线周期中,如果需要可以插入任意多个Tw。
8.指令JMP BX跳转的目的地只能在本段内
9.LOOP指令常用CX做计数器,但也可用其它寄存器做计数器
10.不能显式给CS和IP置新值。
11.8086的所有指令的字节数相同。
12.段内转移需要改变CS,IP的值.
13.MOV AX,[AX]的源操作数是寄存器间接寻址。
14.立即数只能做源操作数.
15.不能用立即数给段寄存器进行赋值。
16.MOV AX,XX中源操作数是直接寻址XX是字变量)。
17.加、减、乘、除运算指令都分带符号数和不带符号数运算指令。
18.十进制调整指令是把AL中二进制数转换成BCD码.
19.8086从存储器每取一条指令就需要一个总线周期.
20.基址变址寻址是在基址寄存器和变址寄存器中寻找操作数.
21.SP的内容在任何时候都指向当前的栈顶,要指向堆栈的其他位置,可以使用BP指针。
22.CMP AL,BL和TEST AL,BL都会改变AL的值,AND AL,BL不会.
指出关于8086传送类指令说法是正确还是错误的:
21.在串指令使用前,必须先将DF置0.
22.非串指令不能在存储器之间直接传送。
23.指令中都必须有操作数.
24.堆栈操作指令必须以字节为操作数。
1.8086内存空间和 I/O寻址空间各是?2(20) 2(16)
2.2025:0F2AH的物理地址是?物理地址2117AH,它的段地址和偏移地址可能是?
3.哪些寄存器可以作为寻址数据的指针寄存器?(BX BP SI DI)
5.AX中有符号数除以2 要先择⑴SHR AX,1还是⑵SAR AX,1(保号右移)指令?
6.设CS=8225H, DS=8223H,SS=8230H,BP=3942H,指令INC BYTE PTR[BP]操作数的物理地址?822300+3942—85C42
6.串操作指令中,源操作数的段地址和目的操作数的段地址分别在?(DS,ES)指令LODSB和SCASB操作数的段地址是在哪儿(DS,ES)?DF=0则地址如何变化?(递增)
7.指出下列指令哪些会,哪些不会改变AL寄存器内容?
1.AND AL,1(T) 2.AND AL,AL 3.CMP AL,DL
4.OR AL,AL5.XOR AL,AL(T)6.SUBAL,DL(T)
8.写出把CX寄存器低4位清零的指令.(AND CX,0FFF0H)
9.请选用NOT,AND,OR和XOR逻辑指令编写一指令序列,实现将AL第0位、
第1位同时置1,其他位变反。(参考P159—9)
10.指出指令源操作数的寻址方式(VAL为字变量)。
MOV AX,VAL+1 :直接寻址
MOV AX,VAL[SI]:寄存器间接寻址
MOV AX,VAL[BX]:寄存器间接寻址
11。 取变量BUF的地址和取其内容到BX的指令分别是?
取变量BUF地址:LEA BX,BUF 取变量内容:MOV BX,BUF
12.若SP=1510H,写出每执行一条指令后SP=?(参考P159—6)
POP AX
PUSH SI
6。 设(SP)=2000H,(AX)=3000H,(BX)=5000H,问执行下面程序段后:
PUSH AX
PUSH BXﻫPOP AX(SP)=1FFEH,(AX)=5000H, (BX)=5000H
13。 XLAT指令使用前要作什么初始化工作? (BX、AL)
MOV BX,OFFSET hex_table MOV AL,X
14. 用一条指令将AL中划‘×’的位清0 ?
7
6
5
4
3
2
1
0
×
×
15.用哪一条指令可使AL=-27变为AL=27 ?NEG AL(求补,0减去目的操作数后送回目的操作数)
16.执行下面指令语句的结果是?
MOV AL,0A7H
CBW(8位扩展16位)AX=0FFA7H
17.用MOV指令将89以压缩和非压缩BCD码格式送入AX的指令各是?
MOV AX,0089H MOV AX,0809H
18.若BX和SI中存放两个存储器地址,则实现BX≥SI转向X1的条件转移指令是?
JAE(高于或等于) X1
19.哪种BCD码运算是先调整后运算的?除
20.写出将DX,AX中32位数左移一位的代码。
SHL AX,1 RCL(带进位循环左移) DX,1
21.LODSB、MOVSB、STOSB、SCASB这些指令的功能?
LODSB:串装入指令
MOVSB:串传送指令
STOSB: 串送存指令
SCASB:串扫描指令
22.问用OR、AND、XOR、SUB、CMP中的哪些可以判断AX和BX是否同时为偶数或同时为奇数?写出若是转YES的指令序列.
1
SUB AX,BX
2
CMP AX,BX
3
XOR AX,BX
AND AX,1
AND AX,1
AND AX,1
JE YES
JE YES
JE YES
5章
1.检查源程序语法,并转换为机器代码程序的软件是?把若干个模块连接起来成为可执行文件的系统程序是?(汇编程序,连接程序)
2.END START的作用是?(本模块汇编到本句为止,本程序运行时从START处开始执行。)
X=20
Ytab EQU THIS WORD
REPT 100—20+1
DW 3*X*X+8*X-12
X=X+1
ENDM
3.宏指令LOCAL的作用是?(避免宏被多次调用时,产生符号多次定义的错误)
4.用REPT—ENDM宏指令定义Y=3X2+8X—12表格,其中X=20,21,22,23…100.表格首地址为Ytab,并写出索引公式.
5.如语句:CNT EQU 100,CNT称为?是否占内存?(符号常数,不占内存)
6.设数据定义语句ValDW 0ABH,1,10DUP(3DUP(1,0),2)汇编后,为变量该变量分配的存储单元字节数是多少?2×72=144=90H
程序设计题
1。清零当前数据段内地址从2000H开始的100个字节内存单元。(P133例4。12)
DATA SEGMENT
BUFF DB 100 DUP(?)
DATA ENDS
CODE SEGMENT
ASSUME CS : CODE,DS : DATA
MAIN PROC FAR
ﻩﻩSTART:MOV AX,DATA
ﻩﻩ MOV DS,AX
ﻩ ﻩLEA SI,BUFF
ﻩﻩﻩMOV BX,0
ﻩ ﻩﻩMOV CX,100
ﻩ ﻩCLD
ﻩﻩﻩ REP STOSW
OVER:MOV AH,4CH
ﻩﻩﻩ INT 21H ﻩ
ﻩMAIN ENDP ﻩ
CODE ENDS
ﻩ END START
2.统计AX中的数据为“1”位的位数,统计结果存放在BL中。
MOV BL,0
MOV CX,AX
AGAIN: AND CX,CX
JZ EXIT
SHL CX,1
JNC NEXT
INC BL
NEXT: JMP AGAIN
EXIT: RET
MOV CX, 16 ﻩ
MOV BL, 0
AGAIN: ROL AX,1
JNC NEXT
INC BL
NEXT: LOOP AGAIN ﻩ
RET
DATA SEGMENT
BUFF DB 100 DUP(?)
DATA ENDS
CODE SEGMENT
ASSUME CS : CODE,DS : DATA
ﻩMAIN PROC FAR
ﻩSTART:MOV AX,DATA
ﻩﻩ MOV DS,AX
ﻩ MOV BL,0
ﻩ ﻩMOV CX,16
ﻩ ﻩMOV AX,86H
LOOPER:ROL AX,1
DEC CX
JZ OVER
JNC LOOPER
INC BL
JMP LOOPERﻩﻩ
OVER:MOV BUFF,BL
MOV AH,4CH
INT 21H ﻩ
MAIN ENDPﻩ ﻩ
CODE ENDS
END STARTﻩ
3.设字符串STR(如‘My telephone number is 123456.’),统计其中字母、数字符号的个数,并分别存入0030H和0031H单元。
ﻩDATA SEGMENT
ORG 30H
CHG DB ?
NUM DB ?
STR DB ‘My telephone number is 123456.'
LEN =$—STR
DATA ENDS
CDS SEGMENT
ASSUME CS:CDS,DS:DATA
PP PROC FAR
START: MOV AX,DATA
MOV DS,AX
MOV CX, LEN
LEA SI,STR
MOV BX, 0
AGAIN: MOV AL,[SI]
CMP AL,’0’
JB NEXT
CMP AL,’9'
JA X1
INC BL
NEXT: INC SI
LOOP AGAIN
MOV NUM,BL
MOV CHG,BH
MOV AH,4CH
INT 21H
X1:CMP AL,’A'
JB NEXT
CMP AL,’Z’
JA X2
INC BH
JMP NEXT
X2:CMP AL,’a’
JB NEXT
CMP AL,’z’
JA NEXT
INC BH
JMP NEXT
PP ENDP
CDS ENDS
END START
4。编写汇编程序,在长50个字符的STR字符串中统计大写字母的个数,并在显示“大写字母的个数为:”信息的后面显示统计结果。
DATA SEGMENT
STR DB ‘……My telephone number is 123456……’
LEN =50
MSG DB ‘大写字母的个数为: $’
DATA ENDS
CDS SEGMENT
ASSUME CS:CDS,DS:DATA
PP PROC FAR
START: MOV AX,DATA
MOV DS,AX
MOV CX, LEN
LEA SI,STR
MOV BX, 0
AGAIN: MOV AL,[SI]
CMP AL,’A’
JB NEXT
CMP AL,'Z’
JA NEXT
INC BH
NEXT: INC SI
LOOP AGAIN
MOV DX,OFFSET MSG
MOV AH,9
INT 21H
MOV BL,BH
MOV CL,4
SHR BH,CL
CMP BH,9
JBE X1
ADD BH,7
X1: ADD BH,30H
MOV DL,BH
MOV AH,2
INT 21H
AND BL,0FH
CMP BL,9
JBE X2
ADD BL,7
X2: ADD BL,30H
MOV DL,BL
MOV AH,2
INT 21H
MOV DL,‘H’
MOV AH,2
INT 21H
MOV AH,4CH
INT 21H
PP ENDP
CDS ENDS
END START
5.在100个有符号的字节数VAL中找最小数并存入MIN字节变量中.(参考P200,例5.12)
6.首地址为BCDD的区域中存放NN个字节的压缩BCD码,把BCD码转换成字符存放在ASCD开始的区域。(参考实验四)
7.编程把字节变量Vbcd中的压缩BCD码转为二进制数,存放到Vbry字节变量中.
DAT SEGMENT
Vbcd DB 69H
Vbry DB ?
DAT ENDS
CDS SEGMENT
ASSUME CS:CDS,DS:DAT
PP PROC FAR
START: MOV AX,DAT
MOV DS,AX
MOV BH,Vbcd
MOV BL,BH
MOV CL,4
SHR BH,CL
AND BL,0FH
SHL BH,1
MOV AH,BH
SHL BH,1
SHL BH,1
ADD BH,AH
ADD BH,BL
MOV Vbry,BH
MOV AH,4CH
INT 21H
PP ENDP
CDS ENDS
END START
8.试编写汇编语言源程序,首先在屏幕上提示“Please input a number(1~9):”,从键盘输入一位数N,然后响铃N次(响铃的ASCⅡ码为07H),两次铃声间间隔0.5秒(设有现成延时1毫秒的子程序DL1ms可供调用)。
参考P214—12
DATA SEGMENT
MEGS DB ‘Please input a number(1~9):’,0DH,0AH,‘$’
DATA ENDS
CDS SEGMENT
ASSUME CS:CDS,DS:DATA
PP PROC FAR
START: MOV AX,DATA
MOV DS,AX
X0: LEA DX,MEGS
MOV AH,9
INT 21H
MOV AH,1
INT 21H
CMP AL,’1’
JB X0
CMP AL,’9’
JA X0
AND AL,0FH
MOV CL,AL
SUB CH,CH
X3: MOV DL,7
MOV AH,2
INT 21H
设有延迟1ms子程序DL1ms可供调用,要求响铃间隔0.5S:
MOV BX,500
KK: CALL DL1ms
DEC BX
JNZ KK
MOV BX 8000H
X2: MOV DX,0FFFFH
X1: NOP
DEC DX
JNZ X1
DEC BX
JNZ X2
LOOP X3
MOV AH,4CH
INT 21H
PP ENDP
CDS ENDS
END START
9.定义一数据段data,从10H开始存放y函数值表,table为首指针( Y=X2-2X+3 ;X=3,4,5,6,7,8,9,10).编一程序根据X值查table表,把对应Y值存入Y变量中。(参考实验四)
10.设字节变量X中存有两位十六进制数,将其转换成两个字符存入Y。
ﻩDATA SEGMENT
X DB 8FH
Y DB ?,?
DATA ENDS
CDS SEGMENT
ASSUME CS:CDS,DS:DATA
PP PROC FAR
START: MOV AX,DATA
MOV DS,AX
MOV BH,X
MOV BL,BH
MOV CL,4
SHR BH,CL
CMP BH,9
JBE X1
ADD BH,7
X1: ADD BH,30H
MOV Y,BH
AND BL,0FH
CMP BL,9
JBE X2
ADD BL,7
X2: ADD BL,30H
MOV Y+1,BL
INT 21H
MOV AH,4CH
INT 21H
PP ENDP
CDS ENDS
END START
程序分析题
1. 试回答:①下述程序段执行后AX=?BX=?②设执行前SP=2500H.执行后SP=?
(AX=0AB8CH,BX=2546H,SP=2500H)
MOV AX,2546H 先进后出
MOV BX,0AB8CH
…
PUSH AX
PUSH BX
POP AX
POP BX
2. CHAR DB ‘Please input'
……
CLD
LEA DI,[1000H]
MOV CX,64H
MOV AL,CHAR+3
REP SCASB串搜索
该程序段完成的功能是?数据区长度是多少字节?
(在附加段从1000H首地址开始的区域中搜索字母‘a’。数据区长度64H(/100)个字节)
3. ORG 2530H
(2530)XX DB?
……
LEA SI,XX
MOV CX,SI
SUB CX,530H(2000)
NEXT:ADD SI,3
LOOP NEXT
变量XX的偏移地址=?程序段执行后SI=? (2530H;2530H+2000H*3)
4. STR1 DB ‘JIHGFEDCBA’
STR2 DB ‘123456789ABCDE’
…
MOV AH,01;从键盘输入一个1 ~ 9之间的字符
INT 21H
AND AL,0FH
SUB AL,5
CBW (SUB AH,AH)
MOV BX,OFFSET STR2
ADD BX,AX
MOV DL,[BX]
MOV AH,02H ;显示输出
INT 21H
…
试回答:(1) 如从键盘输人字符‘1’,程序段有什么结果?(2)如从键盘输人字符‘7’,程序段有什么结果?(‘D’,‘3’)
5.DY DB 34H,58H,91H,0C2H,6AH
……
MOV CX,word ptr DY
AND CX,0FH
MOV AL,DY +3
SHL AL,CL
上述指令序列执行后,AL=?,CL=?(AL=20H,CL=04H)
6.分析下面程序段:
MOV AL,88H
SAR AL ,l (1100 0100)
MOV BL,AL
MOV CL ,2
SAR AL ,CL算数右移.SAR指令向右逐位移动cnt次,每次逐位移动
后,最高位用符号位来补充,最低位移入CF.
ADD AL ,BL
试问程序段执行后AL=?,BL=?(AL=0B5H=—75,BL=0C4H=-60,(—120/2)+(—120/8))
7.程序段如下:
STR DB 5 DUP(?)
……
MOV BX,OFFSET STR
MOV AL,41H
MOV CX,5
LOP:MOV [BX],AL
INC AL
INC AL
INC BX
LOOP LOP
程序运行后①从STR开始的5个字节中依次存放的什么数据?②与这些数据对应的ASCⅡ码字符是什么?(①41H,43H,45H,47H,49H; ②‘ACEGI’)
Dos调用
1.21H中断的4CH号功能是?(结束用户程序返回操作系统)
2.21H中断的1、2号功能是?该功能的参数出口和参数是?
1#:键入并显示一个字符,无入口参数,出口参数为键入字符的ASICC码在AL中
2#:显示器显示一个字符,入口参数为DL中置输出字符的ASCII码,无出口参数
3.定义具有光标换行功能的宏指令CRLF。(参考课件:系统调用例)
CRLF MACRO
MOV AH, 2
MOV DL,0DH //显示字符 回车
INT 21H
MOV AH, 2
MOV DL,0AH //显示字符 换行
INT 21H
ENDM
4.定义具有字符串输入/出功能的宏指令IO_STR.(参考课件:系统调用例)
IO_STRMACRO M ,BUF ;M=9或10功能选择,BUF为缓冲区指针
MOV AH,M
LEA DX,BUF
INT 21H
ENDM
1.在DEBUG下,A命令的作用是 (汇编)
2. 在DEBUG中,用D命令查看内存时的默认段的段址是(DS)
3.在DEBUG中,u命令的作用是 (反汇编)
4.下列为DEBUG调试程序的R命令所显示的当前各寄存器的内容和状态标志的当前状态: AX=0000 BX=0000 CX=0079 DX=0000 SP=FF2E BP=0000SI=0000DI=0000
DS=10E0 ES=1100 SS=3100 CS=2700 IP=2102 OVUPEINGNZNAPENC
下一条指令的地址(逻辑地址)是多少?当前栈顶的地址(逻辑地址)是?
(下一条指令的地址2700: 2102H; 当前栈顶的地址3100: FF2EH)
13
福建师范大学物光学院
《微型计算机原理》期中试题 2011-4
学号 姓名
一、理解并回答问题
1.假设寄存器AX=3FH,CX=17H
MOV DL, 0
LOP: SUB AX, CX
JC NEXT
INC DL
JMP SHORT LOP
NEXT: ADD AX, CX
HLT
上述程序段执行后,AX=___28H___,DL=___2____
2. MOV AX, 9090H
SUB AX, 4AE0H
JC L1
JO L2
JMP L3
上述程序执行后AX=_45A0H______,程序转向___L3____
3. MOV AL,[10H]
CMP AL,0
JGE(大于或等于转移)BIGPR
MOV AL,‘N’
JMP PP
BIGPR: JE (等于转移)EQUPR
MOV AL,‘P'
JMP PP
EQUPR: MOV AL,‘Z’
PP: MOV [20H],AL
RET
设[10H]=9DH,程序执行后,[20H]=80H.
4。 指出下列程序段的功能是:清零。
CLD
LEA DI,[2560H]
MOV CX,0080H
XOR AX,AX
REP STOSW
数串首地址:2560H,长度:128字节。
5. MOV AL,7EH
MOV AH,81H
MOV CL,4
AND AL,AH
SHR AH,CL
运行程序写出结果:CL=_0_ AH=__ 00H_ AL_81H_
学号 姓名
二、写出所需的代码(段)
1. 设BL和CL中已各存放着17和26的BCD码,求和并放在AL中。
MOV BL,17H MOV CL,26H ADD AL,BLDAA
2. 设DL=15,求DL的三次方。
MOV AL,0FH
MUL AL,AL
MOV DL,0FH
MUL DL
3. 使CL的D7、D4、D0位取反,把AL最低2位置成0,最高2位置成1.
CL 10 10 10 10
XOR CL,10010001 OR AL,11000000 AND AL,11111100
4. 不用乘法指令计算字节变量X中的无符号数乘10,结果存入字变量Y中。
MOV AX,[X] SHR AX,1 MOV BX,AX SHL AX,1 SHL AX,1 ADD AX,BX MOV [Y],AX学号 姓名
5. 写一程序使[50H]和[60H]字节单元内容
展开阅读全文