100分 发表于 2017-7-3 09:48:57

东农17春《汇编语言(专)》离线作业-汇编语言(专)

东北农业大学网络教育学院
汇编语言复习题
第一章 基础知识
填空题
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,CL







3、若(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, 01H





10、试写出执行一下指令序列后BX寄存器的内容。执行前(BX)=6D16H
MOVCL, 7
SHR   BX, CL





11、试分析下面的程序段完成什么功能?
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 5



6、对于下面的数据定义,各条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符。







页: [1]
查看完整版本: 东农17春《汇编语言(专)》离线作业-汇编语言(专)