东农18秋《汇编语言(专)》离线作业
东北农业大学网络教育学院汇编语言复习题
第一章 基础知识
填空题
1、已知十进制数215.75=( )二进制数。十进制数215.75=( )十六进制数。
2、已知十进制数134.25=( )二进制数。十进制数134.25=( )十六进制数。
3、已知二进制数01100101.1011B=( )十进制数。二进制数01100101.1011B B=( )十六进制数。
4、已知二进制数10010110.0101B=( )十进制数。二进制数10010110.0101B=( )十六进制数。
5、已知十六进制数1A5.5H=( )二进制数。十六进制数1A5.5H=( )十进制数。
6、已知十六进制数2C4.6H=( )二进制数。十六进制数2C4.6H =( )十进制数。
7、已知十进制数-35,求:[-35]原码=( )B二进制数,[-35]反码=( )B二进制数,[-35]补码=( )B二进制数。
8、已知十进制数-46,求:[-46]原码=( )B二进制数,[-46]反码=( )B二进制数,[-46]补码=( )B二进制数。
9、已知十进制数42,求:原码=( )B二进制数,反码=( )B二进制数,补码=( )B二进制数。
10、已知十进制数57,求:原码=( )B二进制数,反码=( )B二进制数,补码=( )B二进制数。
第二章 80x86 计算机组成
一、填空题
1、微型计算机的基本硬件结构的4个部分组成为( )、( )、( )、( )。
2、微型计算机软件系统包括( )软件和( )软件两大类。
3、计算机能识别并直接执行的语言是( )语言。
4、中央处理器(CPU)的组成部分是( )( )( )。
二、简答和计算题
1、在8086CPU中,物理地址和逻辑地址是指什么?已知逻辑地址为1E00:28A0H,如何计算出对应得物理地址地址?
2、在8086CPU中,标志寄存器包含哪些标志位?0 和1 分别表示什么含义?
3、在8086CPU中,有哪些通用寄存器、专用寄存器和段寄存器?说明它们的作用?
第三章 80x86 的指令系统和寻址方式
一、填空题
1、已知指令,试确定以下各种寻址法方式:
moval , 5指令为( )寻址方式,
movax , bx指令为( )寻址方式,
movax , 指令为( )寻址方式,
mov ax , 指令为( )寻址方式。
2、用BX,SI,位移量1200H,写出送到AX的寄存器的指令,要求用一下几种寻址:
相对寻址指令( ),
基址变址寻址指令( ),
相对基址变址寻址指令( )。
3、附加段的ES=4978H,容量为16KB请回答:
附加段的首物理地址是( )。
附加段的末物理地址是( )。
4、指出下列指令中存储器操作数有效地址、世纪地址的计算公式。
有效地址 实际地址
ADD AL, ES: ( ) ( )
SHR BYTE PTR , 1 ( ) ( )
MOV CL, 10 ( ) ( )
5、已知AL=9, BL=10,执行指令CMP AL, BL后:
AL=( ), ZF=( ) OF=( ) CF=( )
6、设SP=1010H, AX=1234H, BX=5678H, 请问:下列程序段之行后。
PUSHAX
POP BX
PUSHAX
SP= ( ) AX= ( ) BX= ( )
7、写出下列程序段之行后:AX= ( ).
MOV AX, 0ABCDH
MOV CL, 4
AND AL, 0FH
AND AL, 30H
SHL AH, CL
AND AH, 0F3H
8、已知SP=0100H,执行指令
POPBX
PUSHAX 后SP= ( ) ORG 50H
BUF1 DW1234H, 6789H, 3ABCH
BUF2 DB 7DH
DOUNT1DWBUF1
COUNT1=BUF1-BUF2
试问 COUNT1= ( )二、分析和说明题
1、已知:(DS)=2000H,(SS)=4000H, (BX)=0100H, (SI)=0002H, (BP)=0100H, (20100H)=22H, (20101H)=44H, (20102H)=66H, (20103H)=88H, (21200H)=2AH, (21201H)=4CH, (21202H)=B8H, (21203H)=57H, (40100H)=34H, (40101H)=12H, (41200H)=78H, (41201H)=56H. 试说明下列各条指令执行完后AX寄存器的内容。
1、 MOV AX,2400H
2、MOV AX,BX
3、MOV AX,
4、MOV AX,
5、MOV AX,1100
6、MOV AX,
7、MOV AX,1100
8、MOV AX,
9、MOV AX,1100
10、MOV AL,11H
MOV AH,22H
2、判断下列程序执行后,试求(BX)=?,并说明每步的执行结果?
MOV CL,5
MOV BX,02C9H
ROL BX,1
RCR BX,CL3、若(AL)=0B5H, (BL)=11H, 在执行指令MULBL和IMULBL后,
试求(AX)=?, OF=?, CF=?
4、在0624单元内有一条二字节JMPSHORT OBJ指令,如其中位移量为:(1)27H, (2) 6BH,(3) 0D5H,
试问:转向地址OBJ的值是多少?5、假设(DS)=2000H, (ES)=2100H, (SS)=1500H, (SI)=00A0H, (BX)=0100H, (BP)=0010H, VAL偏移地址值为0050H。
试指出寻址方式?物理地址?
MOV AX,0ABH
MOV AX,BX
MOV AX,
MOV AX,VAL
MOV AX,
MOV AX,ES:
MOV AX,
MOV AX,
MOV AX,
MOV AX,VAL
MOV AX,
MOV AX,VAL
6、如TABLE为数据段中0032单元的符号名,其中存放的内容为1234H,
试问以下两条指令的区别?执行后AX的内容?
MOV AX, TABLE
LEA AX, TABLE
7、执行下列指令后,AX寄存器的内容?
TABLEDW10,20,30,40,50
ENTRYDW3
.
.
.
MOVBX, OFFSET TABLE
ADDBX, ENTRY
MOVAX,
8、已知程序如下:
MOVAX, 1234H
MOVCL, 4
ROLAX, CL
DECAX
MULCX
INT20H
试问:(1)每条指令执行后,AX的内容?
(2)每条指令执行后,进位、符号、零标志的值?
(3)程序结束后,AX和DX的内容?
9、假设 (BX)=0E3H, 变量VALUE中存放的内容为79H,确定下列各条指令单独执行后的结果。
XORBX, VALUE
ANDBX, VALUE
OR BX, VALUE
XORBX, 0FFH
ANDBX, 0
TESTBX, 01H10、试写出执行一下指令序列后BX寄存器的内容。执行前(BX)=6D16H
MOVCL, 7
SHR BX, CL11、试分析下面的程序段完成什么功能?
MOVCL, 04
SHLDX, CL
MOVBL, AH
SHLAX, CL
SHRBL, CL
ORDL,BL
12、假定 (DX)=0B9H, (CL)=3, (CF)=1,确定下列各条指令单独执行后DX中的值。
SHRDX, 1
SARDX, CL
SHLDX, CL
SHLDL, 1
RORDX, CL
ROLDL, CL
SALDH, 1
RCLDX, CL
RCRDL, 1
13、下列程序段执行完后,BX寄存器的内容?
MOVCL, 3
MOVBX, 0B7H
ROL BX, 1
RORBX, CL
14、试分析下列程序段:
ADDAX, BX
JNOL1
JNCL2
SUBAX, BX
JNCL3
JNOL4
JMPSHORTL5
如果AX和BX的内容给定如下:
AX BX
(1)147BH 80DCH
(2) B543H 54A6H
(3) 43C8H 608DH
(4) D032H 9FF5H
(5) 9487H B789H
问该程序执行后,程序转向哪里?
15、说明下列指令的操作。
PUSHAX
POP ESI
PUSH
PUSHAD
POP DS
PUSH4
16、说明IMUL BX, DX, 100H 指令的操作。17、说明 JMPDI 和 JMP 指令的区别。
程序段编写
编写一个程序求出双字长数的绝对值。双字长数在A和A+2单元中,结果存放在B和B+2单元中。写一个程序段,把字符串This is a&book, 中的’&’字符用空格符代替。
StringDB‘This is a&book ’
写程序段,比较两个5字节的字符串OLDS和NEWS,如果OLDS字符串不同于NEWS字符串则执行NEW_LESS;否则顺序执行程序。
写一个程序段,要求把BL中的数除CL中的数,并把其商乘以2,最后的结果存入DX寄存器中。
一个程序段,要求在长度为100H字节的数组中,找出大于42H的无符号数的个数并存入字节单元UP中,找出小于42H的无符号数的个数并存入字节单元DOWN中。
汇编语言程序格式
改错题
指出下列指令的错误:
MOVAH, BX
MOV,
MOVAX,
MOV100H,ES:AX
MOVBYTEPTR, 1000
MOVBX,OFFSET120H
MOVCS, AX
MOVECX, AX
所有标识符为字的变量,指出下列指令的错误,并说明错误是什么?
MOVBP, AL
MOVOP1, SP
MOVOP1, OP2
MOVAX, OP1
假设VAL1和VAL2为变量,LAB为标号,试指出下列指令的错误?
ADDVAL1, VAL2
SUBAL, VAL1
JMPLAB
JNZVAL1
JMPNEAR LAB
指出下列伪操作表达式的错误,并改之?
(1) DATA_SEG SEG
(2) SEGMENT‘CODE’
(3) MYDATASEGMENT/DATA
.
.
ENDS
(4) MAIN_PROC PROC FAR
.
.
ENDMAIN_PROC
MAIN_PROC ENDP
选择题
下列指令中不会改变PC寄存器内容的是( )。
A: MOV B: JMP C: CALL D: RET
2、为了使MOVAX, VAR指令执行后,AX寄存器中的内容为4142H,下面哪一种会产生不正确的结果?( )
A: VAL DW 4142HB: VARDW 16706C: VAR DB 42H,41HD: DW ‘AB’
3、在汇编语言程序设计中,若调用不在本模块中的过程,则对该过程必须用伪操作命令( )说明。
A:PUBLIC B: COMMON C: EXTER D: ASSUME
4、完成将有符号数BX的内容除以2的正确指令是( )。
A: SHR BX,1 B: SAR BX, 1 C: ROR BX, 1D: RCR BX, 1
5、使得JB指令执行转移操作的条件是( )。
A: DF=1 B: CF=1且 ZF=0 C: ZF=0 D: CF=0且 ZF=1
6、在同一程序段,定义有下面的伪指令,使用正确的事( )。
A: PORT1 EQU ALPORT1 EQU 2000H
B: PORT2=3500H AND 0FFH
C: POPDD‘ABCD’
D: PORT4PROC….. RETEND
7、与NOT BL指令执行后有相同BL内容的是:( )。
A: AND BL, 0FFHB: XOR BL, 0FFHC: OR BL, 0FFHD: MOV BL, NOT 0FFH
8、将十进制数63以压缩BCD码格式送入AL中,正确地传送指令是:( )
A: MOV AX, 0063B: MOV AX, 0063H C: MOV AX, 0603D: MOV AX, 0603H
9、设BL=05H,要使结果 BL=0AH,应执行的指令是:( )
A: NOT BLB: AND BL, 0FFHC: XOR BL, 0FH D: OR BL, 0FH
10、下列指令中错误的是( )。
A: PUSHAHB: CMP AX, SIC:JMPDWORD PTR D: REP MOVSW
11、用来表示堆栈指针的寄存器是( )。
A: IP B: BP C: SPD: SS
12、执行下述指令后,(DL)=( )。
ADB‘8’
MOVDL, A
ANDDL, 0FH
OR DL, 30H
A: 8H B: 0FH C: 38D: 38H
13、已知(SS)=3000H,(SP)=0100H,执行下列程序后(SP)=( )。
MOVAX, N1
PUSHAX
MOVAX, N2
PUSHAX
……..
L1: ………
RET2
A: 0100H B: 00FEH C: 00FCH D: 0102H
14、下列指令中操作数在代码段中的是:( )
A: MOV AL, 25HB: ADD AH, BL C: INC DS: D: CMP AL, BL
15、设VARDW1,2, $+2,5,6
若汇编时VAR分配的偏移地址是0010H,汇编后0014H单元的内容是( )
A: 06H B: 14H C: 05H D: 16H
三、析和说明题
画图说明下列语句所分配的存储空间及初始化的数据值。
BYTE_VARDB‘ABCD’,23,-18H,2DUP(0,?,2DUP(2,7),?)
WORD_VARDW 2DUP(2,4,6),?,-5,’BC’,256H
假设程序中的数据定义如下:
PARTNODW?
PNAME DB16 DUP(?)
COUNT DD?
PLENTHEQU$—PARTNO
问PLENTH的值为多少?他表示什么意义?
有符号定义语句如下:
BUFF DB2,3,4,’1,2,3’
EBUFFDB?
L EQUEBUFF—BUFF
问L的值是多少?
假设程序中的数据定义如下:
LNAME DB10 DUP(?)
ADDRESS DB10 DUP(?)
CITY DB 5 DUP(?)
CODE_LISTDB 1,7,8,3,2
(1)用MOV指令将LNAME的偏移地址放入AX。
(2)用一条指令将CODE_LIST的头两个字节的内容放入SI。
(3)用一条伪操作使CODE_LENGTH的值等于CODE_LIST域的实际长度。
给出等值语句如下:
ALPHA EQU100
BETA EQU25
GAMMAEQU2
下列表达式的值是多少?
ALPHA*100+BETA
ALPHAMODGAMMA+BETA
(ALPHA+2)*BETA—2
(BETA/3)MOD 56、对于下面的数据定义,各条MOV指令单独执行后,有关寄存器的内容是什么?
FLDB DB ?
TABLEA DW10 DUP(?)
TABLEB DB ‘ABCD’MOVAX,TYPEFLDB
MOVAX TYPETABLEA
MOVCX, LENGTHTABLEA
MOV DX,SIZETABLEA
MOV CX,LENGTH TABLEB
三、程序段编写
1、试写出一个完整的数据段DATA_SEG,他把整数5赋予一个字节,并把整数-1,0,2,5,和4放在10字数组DATA_LIST的头5个单元中。写一个程序在C_SEG中,要求把数据段D_SEG中的AUGEND和附加段 E_SEG中的ADDEND相加,并把结果存放在D_SEG 中的SUM中。(其中AUGEND为99251,ADDEND为 –15960)
编写一个 20ms延时的子程序。循环与分支程序设计
程序设计
编写一个两个字相加的程序。求从TABLE开始的10个无符号字节数的和,结果放SUM字单元中。
从键盘上输入字符串‘HELLO‘;并在串尾加结束标志‘$’从键盘读入一串字符,并显示出来。
对于三个8位无符号数86H、34H和21H,编写S=86H*34H-21H的程序。内存自TABLE开始的连续16个单元中存放着0~15的平方值(称平方表),查表求DATA中任意数X(0≤X≤15)的平方值,并将结果放RESULT中。
编写程序,将数据区中以字节变量BUFFER为首地址的100个单元清零。
在当前数据段的DATA1开始的顺序80个单元中,存放80位同学某门课程的考试成绩(0~100)。编写程序统计≥ 90分,80~89分,70~79分,60~69分以及<60分的人数。并将结果放到同一数据段的DATA2开始的5个单元中。把从MEM单元开始的100个16位无符号数按从大到小的顺序排列。把用ASCII码形式表示的数转换为二进制码。ASCII码存放在以MASC为首地址的内存单元中,转换结果放MBIN。
把存放在BUFF中的16位二进制数转换为ASCII码表示的等值数字字符串。例如,FFFFH应转换成等值的数字字符串’65535’。
两个多字节二进制数求和程序。子程序设计
程序设计
从一个字符串中删去一个字符
设一字符串长度不超过255个字符,试确定该字符串长度并显示长度值。 3在分辨率为640X480、16色的屏幕上绘制一个周期的正弦波。
4要求从键盘输入一个十进制数,然后以十六进制形式在屏幕上显示。要求键盘输入十进制数为子程序结构,将十进制数转成十六进制形式并显示为子程序结构。第八章 输入输出和中断程序设计
程序设计
编写一个汇编语言程序,要求对键盘输入的一个小写字母用大写字母显示出来。编写一个中断处理程序,要求在主程序运行过程中,每隔10秒响铃一次,同时在屏幕上显示信息“The bell is ring”.编写一个打印ASCII码文件的程序,基本功能为把缓冲区FILE_BUFFER的字符送到打印区PRT_BUFFER,并检查行尾、换行符和TAB符。
www.ap5u.com提醒:答案可以联系Q或微信 761296021
页:
[1]