找回密码
 注册

QQ登录

只需一步,快速开始

查看: 995|回复: 0

东农18秋《汇编语言》离线作业

[复制链接]
发表于 2018-11-17 20:46:07 | 显示全部楼层 |阅读模式
东北农业大学网络教育学院
汇编语言复习题
第一章 基础知识
填空题
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,求:[42]原码=(        )B二进制数,[42]反码=(           )B二进制数,[42]补码=(           )B二进制数。
10、已知十进制数57,求:[57]原码=(        )B二进制数,[57]反码=(           )B二进制数,[57]补码=(           )B二进制数。
第二章 80x86 计算机组成
一、填空题
1、微型计算机的基本硬件结构的4个部分组成为(               )、(                 )、(                    )、(                       )。
2、微型计算机软件系统包括(             )软件和(              )软件两大类。
3、计算机能识别并直接执行的语言是(            )语言。
4、中央处理器(CPU)的组成部分是(              )(              )(              )。
二、简答和计算题
1、在8086CPU中,物理地址和逻辑地址是指什么?已知逻辑地址为1E00:28A0H,如何计算出对应得物理地址地址?
2、在8086CPU中,标志寄存器包含哪些标志位?0 和1 分别表示什么含义?
3、在8086CPU中,有哪些通用寄存器、专用寄存器和段寄存器?说明它们的作用?
第三章 80x86 的指令系统和寻址方式
一、填空题
1、已知指令,试确定以下各种寻址法方式:
mov  al , 5指令为(         )寻址方式,
  mov  ax , bx指令为(         )寻址方式,
mov  ax , [2000H] 指令为(         )寻址方式,
mov ax , [bx] 指令为(         )寻址方式。
2、用BX,SI,位移量1200H,写出送到AX的寄存器的指令,要求用一下几种寻址:
相对寻址指令(           ),
基址变址寻址指令(           ),
相对基址变址寻址指令(           )。
3、附加段的ES=4978H,容量为16KB请回答:
   附加段的首物理地址是(         )。
   附加段的末物理地址是(         )。
4、指出下列指令中存储器操作数有效地址、世纪地址的计算公式。
                                        有效地址    实际地址      
ADD AL, ES:[DI]                  (       )    (        )
SHR BYTE PTR [BP+SI], 1          (       )    (        )
MOV CL, 10[BX]                  (       )    (        )
5、已知AL=9, BL=10,执行指令CMP AL, BL后:
AL=(      ),     ZF=(       )   OF=(      )      CF=(       )
6、设SP=1010H, AX=1234H, BX=5678H, 请问:下列程序段之行后。
PUSH  AX
POP    BX
PUSH  AX
   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,执行指令
POP  BX
PUSH  AX 后  SP= (     )        ORG 50H
BUF1   DW  1234H, 6789H, 3ABCH
BUF2   DB   7DH
DOUNT1  DW  BUF1
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,[1200]
4、MOV AX,[BX]
5、MOV AX,1100[BX]
6、MOV AX,[BX][SI]
7、MOV AX,1100[BX][SI]
8、MOV AX,[BP]
9、MOV AX,1100[BP]
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, 在执行指令MUL  BL和IMUL  BL后,
试求(AX)=?, OF=?, CF=?
4、在0624单元内有一条二字节JMP  SHORT 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,[100H]
MOV AX,VAL
MOV AX,[BX]
MOV AX,ES:[BX]
MOV AX,[BP]
MOV AX,[SI]
MOV AX,[BX+10]
MOV AX,VAL[BX]
MOV AX, [BX][SI]
MOV AX,VAL[BX][SI]
6、如TABLE为数据段中0032单元的符号名,其中存放的内容为1234H,
试问以下两条指令的区别?执行后AX的内容?
MOV AX, TABLE
LEA AX, TABLE
7、执行下列指令后,AX寄存器的内容?
TABLE  DW  10,20,30,40,50
ENTRY  DW  3
.
.
.
   MOV  BX, OFFSET TABLE
   ADD  BX, ENTRY
   MOV  AX, [BX]
8、已知程序如下:
   MOV  AX, 1234H
   MOV  CL, 4
   ROL  AX, CL
   DEC  AX
   MUL  CX
   INT  20H
试问:(1)每条指令执行后,AX的内容?
(2)每条指令执行后,进位、符号、零标志的值?
(3)程序结束后,AX和DX的内容?
9、假设 (BX)=0E3H, 变量VALUE中存放的内容为79H,确定下列各条指令单独执行后的结果。
XOR  BX, VALUE
AND  BX, VALUE
OR    BX, VALUE
XOR  BX, 0FFH
AND  BX, 0
TEST  BX, 01H10、试写出执行一下指令序列后BX寄存器的内容。执行前(BX)=6D16H
MOV  CL, 7
SHR   BX, CL11、试分析下面的程序段完成什么功能?
MOV  CL, 04
SHL  DX, CL
MOV  BL, AH
SHL  AX, CL
SHR  BL, CL
OR  DL,BL
12、假定 (DX)=0B9H, (CL)=3, (CF)=1,  确定下列各条指令单独执行后DX中的值。
SHR  DX, 1
SAR  DX, CL
SHL  DX, CL
SHL  DL, 1
ROR  DX, CL
ROL  DL, CL
SAL  DH, 1
RCL  DX, CL
RCR  DL, 1
13、下列程序段执行完后,BX寄存器的内容?
MOV  CL, 3
MOV  BX, 0B7H
ROL   BX, 1
ROR  BX, CL
14、试分析下列程序段:
ADD  AX, BX
JNO  L1
JNC  L2
SUB  AX, BX
JNC  L3
JNO  L4
JMP  SHORT  L5
如果AX和BX的内容给定如下:
AX          BX
(1)  147BH       80DCH
(2)   B543H      54A6H
(3)   43C8H      608DH
(4)   D032H      9FF5H
(5)   9487H       B789H
问该程序执行后,程序转向哪里?
15、说明下列指令的操作。
PUSH  AX
POP   ESI
PUSH  [BX]
PUSHAD
POP   DS
PUSH  4
16、说明IMUL   BX, DX, 100H 指令的操作。17、说明 JMP  DI 和 JMP  [DI] 指令的区别。
程序段编写
编写一个程序求出双字长数的绝对值。双字长数在A和A+2单元中,结果存放在B和B+2单元中。写一个程序段,把字符串This is a&book, 中的’&’字符用空格符代替。
String  DB  ‘This is a&book ’
写程序段,比较两个5字节的字符串OLDS和NEWS,如果OLDS字符串不同于NEWS字符串则执行NEW_LESS;否则顺序执行程序。
写一个程序段,要求把BL中的数除CL中的数,并把其商乘以2,最后的结果存入DX寄存器中。
一个程序段,要求在长度为100H字节的数组中,找出大于42H的无符号数的个数并存入字节单元UP中,找出小于42H的无符号数的个数并存入字节单元DOWN中。
汇编语言程序格式
改错题
指出下列指令的错误:
MOV  AH, BX
MOV  [BX], [SI]
MOV  AX, [SI][DI]
MOV  100H[BX][SI],  ES:AX
MOV  BYTE  PTR[BX], 1000
MOV  BX,  OFFSET  120H[SI]
MOV  CS, AX
MOV  ECX, AX
所有标识符为字的变量,指出下列指令的错误,并说明错误是什么?
MOV  BP, AL
MOV  OP1[BX+12][DI], SP
MOV  OP1, OP2
MOV  AX, OP1[DX]
假设VAL1和VAL2为变量,LAB为标号,试指出下列指令的错误?
ADD  VAL1, VAL2
SUB  AL, VAL1
JMP  LAB[SI]
JNZ  VAL1
JMP  NEAR LAB
指出下列伪操作表达式的错误,并改之?
(1) DATA_SEG   SEG
(2) SEGMENT  ‘CODE’
(3) MYDATA  SEGMENT/DATA
   .
   .
             ENDS
(4) MAIN_PROC   PROC   FAR
    .
    .
                  END  MAIN_PROC
   MAIN_PROC   ENDP         
选择题
下列指令中不会改变PC寄存器内容的是(   )。
A: MOV     B: JMP     C: CALL     D: RET
2、为了使MOV  AX, VAR指令执行后,AX寄存器中的内容为4142H,下面哪一种会产生不正确的结果?(    )
A: VAL DW 4142H  B: VAR  DW 16706  C: VAR DB 42H,41H  D: 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, 1  D: 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 AL  PORT1 EQU 2000H
B: PORT2=3500H AND 0FFH
C: POP  DD  ‘ABCD’
D: PORT4  PROC….. RET  END
7、与NOT BL指令执行后有相同BL内容的是:(   )。
A: AND BL, 0FFH  B: XOR BL, 0FFH  C: OR BL, 0FFH  D: MOV BL, NOT 0FFH
8、将十进制数63以压缩BCD码格式送入AL中,正确地传送指令是:(    )
A: MOV AX, 0063  B: MOV AX, 0063H   C: MOV AX, 0603  D: MOV AX, 0603H
9、设BL=05H,要使结果 BL=0AH,应执行的指令是:(   )
A: NOT BL  B: AND BL, 0FFH  C: XOR BL, 0FH   D: OR BL, 0FH
10、下列指令中错误的是(   )。
A: PUSH  AH  B: CMP AX, [BX]SI  C:JMP  DWORD PTR [BX]  D: REP MOVSW
11、用来表示堆栈指针的寄存器是(   )。
A: IP    B: BP   C: SP  D: SS
12、执行下述指令后,(DL)=(    )。
    A  DB  ‘8’
    MOV  DL, A
    AND  DL, 0FH
    OR   DL, 30H
A: 8H    B: 0FH   C: 38  D: 38H
13、已知(SS)=3000H,(SP)=0100H,执行下列程序后(SP)=(     )。
     MOV  AX, N1
     PUSH  AX
     MOV  AX, N2
     PUSH  AX
     ……..
L1: ………
    RET  2
A: 0100H    B: 00FEH     C: 00FCH    D: 0102H
14、下列指令中操作数在代码段中的是:(    )
A: MOV AL, 25H  B: ADD AH, BL    C: INC DS:[25H]   D: CMP AL, BL
15、设VAR  DW  1,2, $+2,5,6   
若汇编时VAR分配的偏移地址是0010H,汇编后0014H单元的内容是( )
A: 06H    B: 14H   C: 05H   D: 16H
三、析和说明题
画图说明下列语句所分配的存储空间及初始化的数据值。
BYTE_VAR  DB  ‘ABCD’,23,-18H,2DUP(0,?,2DUP(2,7),?)
WORD_VAR  DW 2DUP(2,4,6),?,-5,’BC’,256H
假设程序中的数据定义如下:
PARTNO  DW  ?
PNAME   DB  16 DUP(?)
COUNT   DD  ?
PLENTH  EQU  $—PARTNO
        问PLENTH的值为多少?他表示什么意义?
有符号定义语句如下:
BUFF   DB  2,3,4,’1,2,3’
EBUFF  DB  ?
L       EQU  EBUFF—BUFF
问L的值是多少?
假设程序中的数据定义如下:
LNAME     DB  10 DUP(?)
ADDRESS   DB  10 DUP(?)
CITY        DB   5 DUP(?)
CODE_LIST  DB 1,7,8,3,2
(1)用MOV指令将LNAME的偏移地址放入AX。
(2)用一条指令将CODE_LIST的头两个字节的内容放入SI。
(3)用一条伪操作使CODE_LENGTH的值等于CODE_LIST域的实际长度。
给出等值语句如下:
ALPHA   EQU  100
BETA     EQU  25
GAMMA  EQU  2
下列表达式的值是多少?
ALPHA*100+BETA
ALPHA  MOD  GAMMA+BETA
(ALPHA+2)*BETA—2
(BETA/3)  MOD 56、对于下面的数据定义,各条MOV指令单独执行后,有关寄存器的内容是什么?
FLDB      DB   ?
TABLEA   DW  10 DUP(?)
TABLEB   DB   ‘ABCD’MOV  AX,  TYPE  FLDB
MOV  AX   TYPE  TABLEA
MOV  CX,   LENGTH  TABLEA
MOV   DX,  SIZE  TABLEA
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

QQ|手机版|小黑屋|网站地图|无忧答案网 ( 冀ICP备18010495号-1 )

GMT+8, 2024-5-5 18:22

Powered by Discuz! X3.5

© 2001-2024 Discuz! Team.

快速回复 返回顶部 返回列表