微机原理与汇编程序设计复习题汇总Word格式文档下载.docx

上传人:b****5 文档编号:19886091 上传时间:2023-01-11 格式:DOCX 页数:11 大小:30.79KB
下载 相关 举报
微机原理与汇编程序设计复习题汇总Word格式文档下载.docx_第1页
第1页 / 共11页
微机原理与汇编程序设计复习题汇总Word格式文档下载.docx_第2页
第2页 / 共11页
微机原理与汇编程序设计复习题汇总Word格式文档下载.docx_第3页
第3页 / 共11页
微机原理与汇编程序设计复习题汇总Word格式文档下载.docx_第4页
第4页 / 共11页
微机原理与汇编程序设计复习题汇总Word格式文档下载.docx_第5页
第5页 / 共11页
点击查看更多>>
下载资源
资源描述

微机原理与汇编程序设计复习题汇总Word格式文档下载.docx

《微机原理与汇编程序设计复习题汇总Word格式文档下载.docx》由会员分享,可在线阅读,更多相关《微机原理与汇编程序设计复习题汇总Word格式文档下载.docx(11页珍藏版)》请在冰豆网上搜索。

微机原理与汇编程序设计复习题汇总Word格式文档下载.docx

8和64K×

8,地址线、数据线各为多少?

SRAM芯片的容量为8K×

8:

地址线13条,数据线8条SRAM芯片的容量为64K×

地址线16条、数据线8条3、指令指针寄存器IP多少位?

有何功能?

IP是一个16位的寄存器,存放EU要执行的下一条指令的偏移地址,用以控制程序中指令的执行顺序,实现对代码段指令的跟踪。

4、8086CPU用于地址锁存器输入允许的控制信号和用于数据收发器允许的控制信号各是什么信号?

用于地址锁存器输入允许的控制信号是ALE,用于数据收发器允许的控制信号是DEN。

5、是什么引脚?

等待测试引脚

6、INTA是什么引脚?

中断响应引脚7、M/IO是什么引脚?

存储器访问/输入输出访问控制引脚8、8086CPU最小、最大方式时用于总线请求、允许的信号线各是什么?

最小:

HOLD---总线请求HLDA---总线响应最大:

RQ/GT0、RQ/GT19、8086CPU访问存贮器和访问I/O的地址分别各为什么?

可寻址的最大存贮器空间和最大I/O空间分别各为多少?

8086CPU访问存贮器的地址是A19—A0,可寻址的最大存贮器空间是1MB.8086CPU访问I/O的地址是A15—A0,可寻址的最大I/O空间是64KB.10、什么是逻辑地址?

什么是物理地址?

它们各自如何表示?

如何转换?

程序中使用的存储器地址称为逻辑地址,由16位“段基址”和16位“偏移地址”(段内地址)组成。

段基址表示一个段的起始地址的高16位。

偏移地址表示段内的一个单元距离段开始位置的距离。

访问存储器的实际地址称为物理地址,用20位二进制表示。

将两个16位二进制表示的逻辑地址错位相加,可以得到20位的物理地址:

物理地址=段基址×

16+偏移地址11、物理地址4ACD9H的逻辑地址可以是哪些?

4A00:

0CD9、4500:

5CD9、4A88:

0459等12、8086CPU输入输出指令的间址寄存器是什么?

DX13、8086CPU寄存器BX、BP、AX、各是什么功能的寄存器?

BX、BP----基址寄存器AX---累加器14、标志寄存器FR多少位?

有哪些标志?

答:

FR是一个16位的寄存器,共9个标志.

其中6个用作状态标志CF、PF、AF、ZF、SF、OF3个用作控制标志DF、IF、TF.

(1)进位标志CF----反映运算结果向更高位是否有进/借位,加减运算后有进位/借位时CF=1,否则CF=0CF标志的用途:

用于运算时的进/借位。

用于无符号数运算后判定是否有溢出。

用于移位操作时接收移出的信息位.

(2)奇偶校验标志PF:

反映运算结果低八位中“1”的个数为奇或者为偶,其值为1表示运算结果的低8位中1的个数为偶数,否则为奇数。

PF标志可用于数据传送后的奇偶校验。

(3)辅助进位标志AF----反映运算后的结果是否有半进位/借位,其值为1表示运算中低4位向高4位有进位或借位,否则无进位或借位。

AF在BCD码运算(8位)时可用作十进制调整的条件。

(4)零标志ZF-----反映运算结果是否为零,其值为1表示运算结果为0,否则非0。

ZF可用于判定二个数是否相等,相等的时候它们相减的结果为零。

ZF还可用作计数器的计数次数是否减为0,当减为0的时候表示计数到,例如:

循环次数计数(5)符号标志SF:

反映运算结果是否为负,其值为1表示运算结果为负数,否则为正数。

SF在有符号数运算时才有意义。

SF也可在无符号数比较大小时判定两个数的大小,A、B两个数相减后结果SF=0,A>

B,SF=1,A<

B;

SF还在有符号数比较大小时与OF标志一起判定两个数的大小。

(6)溢出标志OF:

反映有符号数运算后的结果是否有溢出,其值为1表示带符号数运算结果溢出,否则无溢出。

有符号数运算时:

正数加正数结果为正---无溢出;

结果为负---有溢出负数加负数结果为负---无溢出;

结果为正---有溢出正数加负数或负数加正数-------无溢出OF⊕SF可以用于判有符号数比较大小以上的6个状态标志在运算指令运算后由EU自动的设置在FR中(CF也可以直接用指令设置),常用作指令的转移或执行的控制条件,影响或控制后续指令的执行,特别是CF、ZF、OF、SF。

CPU的不同指令对状态标志的影响是不一样的,有的指令执行后全部影响6个标志,有的影响部分,不影响的保持原态,也有的一个都不影响,对不影响的指令执行后就不可以使用条件转移指令。

控制标志:

(1)方向标志DF:

用于串操作时设置串指针的修改方向,=0,串指针增量变化,=1,串指针减量变化

(2)中断允许标志IF:

设置是否允许CPU响应外部的可屏蔽中断请求INTR,,=0,关中断,=1,开中断(3)陷阱标志TF:

用于设置CPU运行为单条执行指令的方式,=0,正常执行程序,=1,单步执行程序第四章寻址方式与指令系统

1、下列指令的源操作数段基址各是什么段寄存器?

(1)MOVAX,[BP][SI]答:

SS

(2)MOVAX,CS:

8[DI]答:

CS(3)MOVAX,[BX][DI]答:

DS(4)MOVAX,ES:

10[BP][SI]答:

ES2、8086允许段超越和禁止段超越操作各有哪些?

允许段超越的有:

以BP为基址存取操作数取源串数据cs段数据访问等禁止段超越的是:

取指令存目的串堆栈操作push/pop3.已知DS=5000H,SS=2500H,BP=0200H,SI=1000H,传送指令MOVAX,[BP+SI]源操作数的寻址方式什么方式?

物理地址是多少?

源操作数的寻址方式是:

基址变址物理地址=26200H4、若DS=4500H,DI=1000H,COUNT=A8H,指令MOVAX,[DI+COUNT]中,源操作数的有效地址EA和物理地址各为多少?

有效地址EA为10A8H物理地址为460A8H5、8086CPU有哪几种数据寻址方式,掌握数据各种寻址方式的寻址过程,要求会求指令的寻址方式?

会求有效地址EA=?

会求物理地址=?

指令的物理地址=CS*10H+IP堆栈栈顶物理地址=SS*10H+SP源串物理地址=DS*10H+SI,目的串物理地址=ES*10H+DI数据直接寻址:

MOVAL,[1000H];

EA=1000H,物理地址=DS*10H+1000H寄存器间接寻址:

MOVAL,[BX]或[SI]或[DI];

EA=BX或SI或DI,物理地址=DS*10H+BX或SI或DI基址寻址:

MOVAL,DISP[BX];

EA=BX+DISP,物理地址=DS*10H+BX+DISPMOVAL,DISP[BP];

EA=BP+DISP,物理地址=SS*10H+BP+DISP

基址变址寻址:

MOVAL,[BX+SI或DI];

EA=BX+SI或DI,物理地址=DS*10H+BX+SI或DIMOVAL,[BP+SI或DI];

EA=BP+SI或DI,物理地址=SS*10H+BP+SI或DI变址寻址:

MOVAL,DISP[SI];

EA=SI+DISP,物理地址=DS*10H+SI+DISPMOVAL,DISP[DI];

EA=DI+DISP,物理地址=DS*10H+DI+DISP相对基址变址寻址:

MOVAL,DISP[BX+SI或DI];

EA=BX+SI或DI+DISP,物理地址=DS*10H+BX+SI或DI+DISPMOVAL,DISP[BP+SI或DI];

EA=BP+SI或DI+DISP,物理地址=SS*10H+BP+SI或DI+DISP

6、8086CPU有哪几种转移寻址方式,段内、段间转移有何不同?

掌握转移各种寻址方式的寻址过程。

与转移地址有关的寻址方式:

段内相对寻址、段内间接寻址、段间直接寻址、段间间接寻址。

段内相对寻址:

段内短转(short)—转移偏移地址=IP+disp8段内近转(near)—转移偏移地址=IP+disp16段内间接寻址:

寄存器间接—转移的偏移地址=reg(reg为AX、BX、CX、DX、SP、BP、SI、DI)存储器间接—转移的偏移地址=(EA)(EA为数据寻址方式寻址单元,为字单元)例:

已知BX=3500H,DS=2000H.(23500H)=4500H,(23502H)=2000HJMPBX;

段内寄存器间接,IP=3500HJMPWORDPTR[BX];

段内存储器间接,IP=(2000H*10H+3500H)=4500H段间直接转:

JMPFARPTRL:

IP=转移指令的第2、3字节CS=转移指令的第4、5字节段间存储器间接转:

JMPDWORDPTR[BX]:

IP=(2000H*10H+3500H)=4500HCS=(2000H*10H+3500H+2)=2000H

7、数据传送指令(MOV)使用有哪些规定?

允许reg←reg例:

MOVAX,BX允许reg←mem例:

MOVAX,[BX]允许reg←data例:

MOVAX,2500H允许reg←sreg例:

MOVAX,CS允许mem←reg例:

MOV[BX],AX允许mem←data例:

MOV[BX],2500H允许mem←sreg例:

MOV[BX],CS允许sreg←reg(除CS外)例:

MOVDS,BX不允许:

mem←mem例:

MOVY,[BX]例:

MOV[SI],[BX]不允许sreg←data例:

MOVDS,2500H不允许sreg←sreg例:

MOVDS,CS不允许CS做目的寄存器例:

MOVCS,BX注意数据类型匹配例:

MOVDL,BX8、数据寻址有哪些情况不允许?

解:

例如MOV[DI],[BX];

错,存储器不能传存储器MOV[DX+SI],AL;

错,DX不能用作基址寻址MOV[SI+DI],AL;

错,SI+DI不能用作变址寻址MOV[BX+BP],AL;

错,BX+BP不能用作基址寻址MOVWORDPTR[BX],-1;

正确MOVAL,BX;

错,类型不匹配MOVDS,SEGDAT;

错,立即数不能送段寄存器PUSH1234H;

错,不能用立即数MULAL,58H;

错,不能用立即数9、不能采用立即数寻址方式的指令有哪些?

PUSH1234H;

错,不能用立即数MUL58H;

错,不能用立即数DIV58H;

错,不能用立即数10、掌握8086CPU以下指令:

MOV、PUSH/POP、LEA、ADD、ADC、SUB、SBB、INC、DEC、NEG、CMP、DAA、MUL、DIV、AND、OR、NOT、XOR、SHL、SHR、SAL、SAR、ROL、ROR、RCL、RCR、MOVS、CMPS、STOS、LODS、SCAS、REP、条件转移类、LOOP、CALL、RET、CLD、STD对给出的指令,要求会分析指令是否正确。

第五章伪指令及汇编语言程序结构

1.PTR运算符有何功能?

可以重新指定存储器操作数的类型,可以重新指定转移指令的转移类型。

2、存储器数据类型有什么要求,如何解决类型不确定?

存储器数据类型要求类型匹配,用PTR可以说明和重新指定变量或标号的类型满足类型匹配。

例如:

INC[BX]----类型不确定正确的写法:

INCBYTEPTR[BX]-----字节类型INCWORDPTR[BX]-----字类型例如:

XDW1234H-------字属性MOVAL,X-----类型错误正确的写法:

MOVAL,BYTEPTRX;

AL=34H3.要求会求数组最后一个字、字节的存储地址是多少。

数组最后一个字的地址=数组的首地址+(数据个数-1)*2数组最后一个字节的地址=数组的首地址+(数据个数-1)4、已知BUF偏移地址为58ADH,定义BUFDW20DUP(?

)后,该数组最后一个字数据的偏移地址是多少?

数组最后一个字数据的偏移地址=58ADH+(14H-1)*2H=58D3H。

5、已知BUF偏移地址为25DBH,定义BUFDB50DUP(?

)后,该数组最后一个字节的偏移地址是多少?

数组最后一个字节的偏移地址=25DBH+(32H-1)=260CH6、掌握汇编语言程序的编程格式---段定义、段说明、段结束、返回DOS。

DATASEGMENT……DATAENDSCODESEGMENTASSUMECS:

CODE,DS:

DATASTART:

…..…..MOVAH,4CHINT21HCODEENDSENDSTART7、掌握汇编语言中常量有哪些?

举例。

常量有:

二进制:

10001101B十进制:

2532D、-256D、2536十六进制:

2532H、0FAC8H、ABCDH----0ABCDH字符常量:

‘A’用EQU定义的常量:

ABCEQU208、掌握汇编语言中变量的属性和数据的类型。

变量的属性包括有:

段地址、偏移地址、类型属性(字节BYTE、字WORD、双字DWORD)9、掌握汇编语言中标号的属性。

标号的属性包括有:

段地址、偏移地址、类型属性(段内NEAR、段间FAR)10、掌握汇编语言中数据定义语句。

字节定义:

A1DB25字定义:

A2DW1234H双字定义:

A3DD12345678H8字节定义DQ10字节定义DT

11、汇编语言组成标识符的字符及规则是怎样的?

答:

(1)组成标识符的字符有:

英文大写字母:

A~Z;

英文小写字母:

a-z;

数字0~9;

字符?

、@、_、$;

(2)字符长度不超过3l个;

(3)首字符不能是数字;

(4)?

不能单独作为一个标识符;

(5)不能把保留字用作标识符,保留字包括助记符、寄存器名等。

12、什么是8086汇编语言名字?

包括有哪些?

有何特点?

程序中用到的名字有何特点?

名字是程序员在编程中按标识符规定命名的,目的是方便编程和读程。

名字包括文件名、标题名、段名、过程名和符号常量名等。

程序中用到的名字:

(1)段名:

在段定义语句中命名取定,定义后的段名可以作为段基值来使用,用来对段寄存器赋值。

(2)过程名:

在过程定义语句中定义,指向过程中第一条指令所在的内存单元的地址,即过程的入口地址,有NEAR和FAR之分。

(3)符号常量名:

由符号定义语句EQU、=来定义,对符号常量给以赋值。

第六章汇编语言程序设计

1、已知AX=836BH,X=FFFFH,执行“CMPAX,X”后,标志位ZF、CF、OF、SF=?

01011000001101101011+00000000000000011000001101101100ZF=0(结果非0)CF=1(有借位)OF=0(无溢出)SF=1(结果为负)

2.设SP=2000H,AX=8A95H,DI=A000H。

请写出下列指令执行后指定寄存器和标志位的值。

ADDAX,DI;

PUSHAX;

POPDI;

ADDAX,DI;

AX=2A95H,CF=1PUSHAX;

SP=1FFEHPOPDI;

DI=2A95H3、查表程序如下,分析该程序写出程序执行后的结果。

DATASEGMENTTABLEDW0,1,4,9,16,25,36,49,64,81,100,121,144,169,196,225,256,289,324,361,400XDB17;

YDW?

;

DATAENDS;

定义代码段CODESEGMENTASSUMECS:

CODE,DS:

DATASTART:

MOVAX,DATAMOVDS,AX;

MOVBX,OFFSETTABLE;

MOVAL,X;

MOVAH,0;

SHLAX,1;

AX=34ADDBX,AXMOVAX,[BX];

MOVY,AX;

MOVAH,4CHINT21H;

CODEENDSENDSTART答:

Y=289或91H

4、查表程序如下,分析该写出程序执行后的结果。

DATASEGMENTTABLEDB0,1,4,9,16,25,36,49,64,81,100,121,144,169,196,225;

XDB14;

YDB?

DATAENDSCODESEGMENTASSUMECS:

MOVBX,OFFSETTABLEMOVAL,X;

MOVAH,0;

ADDBX,AXMOVAL,[BX]MOVY,AL;

MOVAH,4CHINT21H;

CODEENDSENDSTART答:

Y=196或C4H5.分析下列程序段每条指令的执行结果和程序实现的功能?

XDW10 MOVAX,X SALAX,1 MOVBX,AX SALAX,1 ADDAX,BX ADDAX,XRET答:

XDW10 MOVAX,X;

AX=X SALAX,1;

AX=2X MOVBX,AX;

BX=2X SALAX,1;

AX=4X ADDAX,BX;

AX=6XADDAX,X;

AX=7X执行后的结果AX=46H或70,实现了X×

7的功能。

     6.分析下列程序段每条指令的执行结果和程序实现的功能?

XDB10MOVAL,X SALAL,1MOVBL,AL SALAL,1  SALAL,1 ADDAL,BL答:

XDB10MOVAL,X;

AL=X SALAL,1;

AL=2XMOVBL,AL;

BL=2X SALAL,1;

AL=4X  SALAL,1;

AL=8X ADDAL,BL;

AL=10X执行后的结果AL=64H或100,实现了X×

10的功能。

7、已知DS=5000H,BX=2500H,DI=6000H(58500H)=D456H,CX=0004H,CF=1指令SAR[BX][DI],CL、指令RCLBYTEPTR[BX][DI],1执行后的结果各是什么?

指令SAR[BX][DI],CL执行后的结果是:

物理地址=DS*10H+BX+DI=58500H执行前:

(58500H)=D456H;

执行后:

(58500H)=FD45H;

指令RCLBYTEPTR[BX][DI],1执行后的结果是:

(58500H)=ADH01010110CF=110101101CF=0物理地址=DS*10H+BX+DI=58500H执行前:

(58500H)=56H;

CF=1执行后:

(58500H)=ADH8、已知DS=5000H,BX=2500H,DI=6000H(58500H)=C456H,CX=0004H,指令SAR[BX][DI],CL、指令SHR[BX][DI],CL执行后的结果各是什么?

指令SAR[BX][DI],CL执行后的结果各是(58500H)=FC45H;

指令SHR[BX][DI],CL执行后的结果是:

(58500H)=0C45H9、掌握补码计算X+Y和X-Y。

并可写出计算后的真值及标志位CF、OF、ZF、SF、PF各为多少?

X=-45,Y=-34,用补码计算X+Y和X-Y。

解:

X=-45=-0101101[X]补=11010011Y=-34=-0100010[Y]补=11011110[-Y]补=00100010求[X+Y]补:

[X]补=11010011+[Y]补=11011110110110001=-1001111=-79CF=1(有进位)ZF=0(结果非0)SF=1(结果为负)OF=0(结果无溢出)PF=1(偶数个1)

求[X-Y]补:

[X]补=11010011+[-Y]补=00100010011110101=-0001011=-11CF=0=1(有借位)ZF=0(结果非0)SF=1(结果为负)OF=0(结果无溢出)PF=1(偶数个1)10、设AX=865AH,BX=CB75H,则指令“ADDAX,BX”执行后,产生的标志位是怎样的?

1000011001011010+110010110111010110101000111001111CF=1(有进位)SF=0(结果为正)ZF=0(结果非零)OF=1(结果有溢出)AF=0(无进借位)PF=1(偶数个1)11、判断下列指令是否正确。

若不正确,指出错误原因。

(1)MOVSI,DL

(2)MOVES,1000H(3)LEAAX,3006H(4)MOV[BP][DI],0(5)MOV[SI],[DI](6)MOV[DI],[BX](7)MOV[DX+SI],AL(8)MULAL,58H(9)MOVDS,SEGDAT(10)MOVWORDPTR[BX],-1答:

(1)指令MOVSI,DL是错误的,两个操作数类型不匹配。

(2)指令MOVES,1000H是错误的,装载段寄存器时,源操作数不能为立即数。

(3)指令LEAAX,3006H是错误的,LEA指令的源操作数必须为内存操作数。

(4)指令MOV[BP][DI],0是错误的,操作数类型无法确定。

(5)指令MOV[SI],[DI]是错误的,不能同时

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 法律文书 > 调解书

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1