百度
360搜索
搜狗搜索

汇编语言程序设计期末考试,汇编语言程序设计题详细介绍

本文目录一览: 求汇编期末考试题

汇编语言2005—2006学年第二学期期末考试复习题及参考答案
一、 填空
1. 十进制数369转换成二进制数为()2,转换成十六进制数为()16.
2. 计算机中的指令由( )和( 地址码 )两部分组成。
3. 8086的地址总线有20根,寻址范围为( )字节。
4. 下一条将要执行的指令的地址存放在寄存器( )中。
5. 写出IBM PC机的三种子程序返回的指令(RET), (IRET),(IRETD)。
6. 汇编语言源程序需经过()程序汇编,( )程序连接才能生成可执行文件。
7. 存储器某单元的地址表示为2314H:4132H,则它的偏移地址=(4132),物理地址=()
8. REP指令前缀与()指令配合使用。
9. 在显示器上查看和修改内存单元的内容可以使用DEBUG的( )和( )命令。
10. (AL)=BFH,要求屏蔽第0,1两位,则要执行指令( );如果要求第0,1位变反,可使用指令( )
11. 宏汇编适合于(),()的子功能段使用;
二、 选择题
1. 设字长N=16,有符号数7AE9H的补码表示为( )
A. 9EA7H B. 76C4H C. 8417H D. 7AE9H
2. 比较有符号数3260H与0B425H的大小关系为( )
A. 相等 B. 小于 C. 大于 D. 不能比较
3. 指令JMP WORD PTR [BX][DI]中转移的目标地址为( )
A.16 d x(DS)+(BX)+(DI) B.16d x(ES)+(BX)+(DI)
C.16d x(SS)+(BX)+(DI) D.16d x(CS)+(BX)+(DI)
4. 在指令 MOV AX,[1000H]中,源操作数的寻址方式为( )
A.立即寻址 B.直接寻址 C.段内间接寻址 D.寄存器寻址
5. 中断矢量表中存放的是( )
A. 中断类型号 B. 断点地址 C. 中断服务程序 D. 中断服务程序入口地址
6. 8086 的汇编语言指令系统中的条件转移指令可以使程序转移到( )
A. 段内的任何地方 B. 距该指令偏移地址为-32768~+32767的地方
C. 距该指令偏移地址为-128~+127的地方. D. 段外
7. 能定义ASCII码字符串的数据定义语句有( )
A. DB,DW,DD,DQ,DT B. DB,DW,DD C. DB, DW D. DB;
8. 若(AL)=87H,执行ADD AL,0F5H后,S,Z,C,O,P的状态为( )
A.SF=0,ZF=0,CF=1,OF=1,PF=0 B.SF=1,ZF=0,CF=1,OF=0,PF=1
C.SF=0,ZF=0,CF=0,OF=1,PF=0 D.SF=1,ZF=0,CF=1,OF=1,PF=1
9. 比较指令CMP( )
A. 专用于有符号数比较 B. 专用于无符号数比较
C. 专用于串比较 D. 不区分比较的对象是有符号数还是无符号数
10. 数据传送指令对标志位的影响为( )
A.都不影响; B.都影响;
C.除了SAHF,POPF,其它均不影响. D.除了控制标志位,其它均不影响
三、 判断题
( )31. 段间调用的子程序必须由伪操作FAR说明为远过程。
( )32. PC机以位作最小寻址单位。
( )33. 当SRC是立即数时,DST可以使用存储器寻址。
( )34. 指定各个逻辑段偏移地址可以使用ORG伪指令。
( )35. LOOPE/LOOPZ是相等/为零时转移到标号,其退出条件是(CX)=0或ZF=0。
( )36. POP IP
( )37. 设327FH和0BFFFH为有符号数的补码表示,则327FH < 0BFFFH
( )38. 多个模块间的符号交叉引用要用伪指令PUBLIC和EXTRN说明
( )39. MOV AX,VAR1-VAR2+100
( )40. ADD [SI],50
四、 程序分析题
1. A DW 1234H
B DW 5678H
PUSH A
PUSH B
POP A
POP B
试回答:上述程序段执行后(A)= ,(B)=
2. 分析下面程序段,
MOV AL,200
SAR AL,1
MOV BL,AL
MOV CL,2
SAR AL,CL
ADD AL,BL
试问程序段执行后(BL)= (AL)=
3. STRING DB ‘ABCDEFGHIJ'
MOV AH,01 ;从键盘输入字符1~9
INT 21H
AND AL,0FH
DEC AL
XOR AH,AH
MOV BX,OFFSET STRING
ADD BX,AX
MOV BL,[BX]
MOV AH,02H ;显示输出
INT 21H
试回答:
(1)上述程序段的功能是什么?
(2)如从键盘输入字符‘4',程序段有什么结果?
4. 有如下程序:
AND AL,AL
JZ BRCH1
RCR AL,1
JZ BRCH2
RCL AL,1
INC AL
JZ BRCH3
上述程序运行后,试回答:
(1)当(AL)=时,程序转向BRCH1
(2)当(AL)=时,程序转向BRCH2
(3)当(AL)=时,程序转向BRCH3
5. 下列程序段完成什么工作?
DAT1 DB 30 DUP(?)
DAT2 DB 10 DUP(?)

MOV CX,10
MOV BX,20
MOV SI,0
MOV DI,0
NEXT:MOV AL,DAT1〔BX〕〔SI〕
MOV DAT2〔DI〕,AL
INC SI
INC DI
LOOP NEXT
6. 下面程序段执行完以后,AL的内容是什么?
MOV BX,00FFH
AND BX,0FFFH
OR BX,0F0FH
XOR BX,00FFH
7. 执行下列指令后,AX寄存器中的内容是什么?
START DW 10H,20H,30H,40H,50H
EE1 DW 3

MOV BX,OFFSET START
ADD BX,EE1
MOV AX,〔BX〕
8. 试分析下面程序段的功能是什么?
CMP AL,‘A’
JC OTHER
CMP AL,‘Z’+1
JNC OTHER
JMP LETTER

OTHER: ┇
LETTER: ┇
五、 程序填空题
1. 设AX,BX中的数一个为正数,一个为负数,下面程序段完成将正数送到PLW单元中存放,请将程序中所缺指令语句补上。
TEST AX,8000H
MOV PLW,BX
JMP DONE
K1:
DONE:
2. 现有下列数据段:
DATA SEGMENT
STR1 DB‘ABCDEFGHIJKL'
COUNT EQU -STR1
BUF DB COUNT DUP(0)
DATA ENDS
下面程序段是实现把STR1中所有字符逆向传送到BUF缓冲区(即STR1中第一个字符送到BUF的最后一个单元,STR1中最后一字符送到BUF的第一个单元)。试把程序中所空缺的指令填上。
MOV SI,OFFSET BUF-1
MOV DI,OFFSET BUF
MOV CX,COUNT
__ __
LOOP:MOVSB
__ __
LOOP LOP
或者()
六、 程序设计题
1. 编程序段计算SUM=∑ai=a1+a2+...+a20,已知a1......a20依次存放在以BUF为首址i=1的数据区,每个数据占两个字节,和数SUM也为两个字节。(要求用循环结构编写,循环控制采用计数控制)。(此题勿需书写源程序格式,只需把试题要求的有关指令序列书写出来。)
2. 设在DAT单元存放一个-9~+9的字节数据,在SQRTAB数据区中存放了0~9的平方值,请用直接查表法编写一个子程序,在SQRTAB中查找出DAT单元中数据对应的平方值送SQR单元。并写出主程序的调用方式。
数据段如下:
DATA SEGMENT
DAT DB XXH
SQRTAB DB 0,1,4,9,...81
SQR DB?
DATA ENDS
3. 试编写出把DX、AX中的双字右移四位的程序段。
4. 定义一个数据区,它包含有23H,24H,25H和26H四个字符数据,把这个数据区复制20次,并显示出复制结果。
汇编语言2005—2006学年第二学期期末考试复习题及参考答案
一、 填空
1. 十进制数369转换成二进制数为(101110001)2,转换成十六进制数为(171)16.
2. 计算机中的指令由( 操作码 )和( 地址码 )两部分组成。
3. 8086的地址总线有20根,寻址范围为( 1M )字节。
4. 下一条将要执行的指令的地址存放在寄存器( 指令指针寄存器 )中。
5. 写出IBM PC机的三种子程序返回的指令(RET), (IRET),(IRETD)。
6. 汇编语言源程序需经过(汇编)程序汇编,( 连接 )程序连接才能生成可执行文件。
7. 存储器某单元的地址表示为2314H:4132H,则它的偏移地址=(4132),物理地址=(27272H)
8. REP指令前缀与()指令配合使用。
9. 在显示器上查看和修改内存单元的内容可以使用DEBUG的( D )和( E )命令。
10. (AL)=BFH,要求屏蔽第0,1两位,则要执行指令( AND AL,3F );如果要求第0,1位变反,可使用指令( XOR AL,3F )
11. 宏汇编适合于(程序短),(参数多)的子功能段使用;
二、 选择题
1. 设字长N=16,有符号数7AE9H的补码表示为( D )
A. 9EA7H B. 76C4H C. 8417H D. 7AE9H
2. 比较有符号数3260H与0B425H的大小关系为( C )
A. 相等 B. 小于 C. 大于 D. 不能比较
3. 指令JMP WORD PTR [BX][DI]中转移的目标地址为( A )
A.16 d x(DS)+(BX)+(DI) B.16d x(ES)+(BX)+(DI)
C.16d x(SS)+(BX)+(DI) D.16d x(CS)+(BX)+(DI)
4. 在指令 MOV AX,[1000H]中,源操作数的寻址方式为( B )
A.立即寻址 B.直接寻址 C.段内间接寻址 D.寄存器寻址
5. 中断矢量表中存放的是( D )
A. 中断类型号 B. 断点地址 C. 中断服务程序 D. 中断服务程序入口地址
6. 8086 的汇编语言指令系统中的条件转移指令可以使程序转移到( A )
A. 段内的任何地方 B. 距该指令偏移地址为-32768~+32767的地方
C. 距该指令偏移地址为-128~+127的地方. D. 段外
7. 能定义ASCII码字符串的数据定义语句有( D )
A. DB,DW,DD,DQ,DT B. DB,DW,DD C. DB, DW D. DB;
8. 若(AL)=87H,执行ADD AL,0F5H后,S,Z,C,O,P的状态为( C )
A.SF=0,ZF=0,CF=1,OF=1,PF=0 B.SF=1,ZF=0,CF=1,OF=0,PF=1
C.SF=0,ZF=0,CF=0,OF=1,PF=0 D.SF=1,ZF=0,CF=1,OF=1,PF=1
9. 比较指令CMP( D )
A. 专用于有符号数比较 B. 专用于无符号数比较
C. 专用于串比较 D. 不区分比较的对象是有符号数还是无符号数
10. 数据传送指令对标志位的影响为( D )
A.都不影响; B.都影响;
C.除了SAHF,POPF,其它均不影响. D.除了控制标志位,其它均不影响
三、 判断题
( )31. 段间调用的子程序必须由伪操作FAR说明为远过程。 T
( )32. PC机以位作最小寻址单位。 F
( )33. 当SRC是立即数时,DST可以使用存储器寻址。 F
( )34. 指定各个逻辑段偏移地址可以使用ORG伪指令。 T
( )35. LOOPE/LOOPZ是相等/为零时转移到标号,其退出条件是(CX)=0或ZF=0。T
( )36. POP IP F
( )37. 设327FH和0BFFFH为有符号数的补码表示,则327FH < 0BFFFH F
( )38. 多个模块间的符号交叉引用要用伪指令PUBLIC和EXTRN说明 T
( )39. MOV AX,VAR1-VAR2+100 F
( )40. ADD [SI],50 F
四、 程序分析题
1. A DW 1234H
B DW 5678H
PUSH A
PUSH B
POP A
POP B
试回答:上述程序段执行后(A)= 5678H ,(B)= 1234H
2. 分析下面程序段,
MOV AL,200
SAR AL,1
MOV BL,AL
MOV CL,2
SAR AL,CL
ADD AL,BL
试问程序段执行后(BL)= 0E4H (AL)= 0DDH
3. STRING DB ‘ABCDEFGHIJ'
MOV AH,01 ;从键盘输入字符1~9
INT 21H
AND AL,0FH
DEC AL
XOR AH,AH
MOV BX,OFFSET STRING
ADD BX,AX
MOV BL,[BX]
MOV AH,02H ;显示输出
INT 21H
试回答:
(1)上述程序段的功能是什么? 根据从键盘输入的字符‘1’~‘9’,确定在显示器上显示STRING中第几个字符。
(2)如从键盘输入字符‘4',程序段有什么结果? 显示器显示字符‘D’
4. 有如下程序:
AND AL,AL
JZ BRCH1
RCR AL,1
JZ BRCH2
RCL AL,1
INC AL
JZ BRCH3
上述程序运行后,试回答:
(1)当(AL)=(AL)=0 时,程序转向BRCH1
(2)当(AL)=(AL)=1 时,程序转向BRCH2
(3)当(AL)=(AL)=-1 时,程序转向BRCH3
5. 下列程序段完成什么工作? 把DAT1+20存储单元开始的10个字节搬到DAT2开始的连续10个存储单元中
DAT1 DB 30 DUP(?)
DAT2 DB 10 DUP(?)

MOV CX,10
MOV BX,20
MOV SI,0
MOV DI,0
NEXT:MOV AL,DAT1〔BX〕〔SI〕
MOV DAT2〔DI〕,AL
INC SI
INC DI
LOOP NEXT
6. 下面程序段执行完以后,AL的内容是什么? 0F00H
MOV BX,00FFH
AND BX,0FFFH
OR BX,0F0FH
XOR BX,00FFH
7. 执行下列指令后,AX寄存器中的内容是什么? 3000H
START DW 10H,20H,30H,40H,50H
EE1 DW 3

MOV BX,OFFSET START
ADD BX,EE1
MOV AX,〔BX〕
8. 试分析下面程序段的功能是什么? 判断AL的内容,若为‘A’~‘Z’的大写字母时,程序转LETTER处理,否则转OTHER处理
CMP AL,‘A’
JC OTHER
CMP AL,‘Z’+1
JNC OTHER
JMP LETTER

OTHER: ┇
LETTER: ┇
五、 程序填空题
1. 设AX,BX中的数一个为正数,一个为负数,下面程序段完成将正数送到PLW单元中存放,请将程序中所缺指令语句补上。
TEST AX,8000H
JE K1或JZ K1
MOV PLW,BX
JMP DONE
K1: MOV PLW,AX
DONE:
2. 现有下列数据段:
DATA SEGMENT
STR1 DB‘ABCDEFGHIJKL'
COUNT EQU -STR1
BUF DB COUNT DUP(0)
DATA ENDS
下面程序段是实现把STR1中所有字符逆向传送到BUF缓冲区(即STR1中第一个字符送到BUF的最后一个单元,STR1中最后一字符送到BUF的第一个单元)。试把程序中所空缺的指令填上。
MOV SI,OFFSET BUF-1
MOV DI,OFFSET BUF
MOV CX,COUNT
__ CLD__
LOOP:MOVSB
__ SUB SI,2__
LOOP LOP
或者(STD/ADD DI,2)
六、 程序设计题
1. 编程序段计算SUM=∑ai=a1+a2+...+a20,已知a1......a20依次存放在以BUF为首址i=1的数据区,每个数据占两个字节,和数SUM也为两个字节。(要求用循环结构编写,循环控制采用计数控制)。(此题勿需书写源程序格式,只需把试题要求的有关指令序列书写出来。)
程序段:MOV AX,0
MOV BX,OFFSET BUF
MOV CX,20
LOP:ADD AX,[BX]
INC BX
INC BX
LOOP LOP
MOV SUM,AX
2. 设在DAT单元存放一个-9~+9的字节数据,在SQRTAB数据区中存放了0~9的平方值,请用直接查表法编写一个子程序,在SQRTAB中查找出DAT单元中数据对应的平方值送SQR单元。并写出主程序的调用方式。
数据段如下:
DATA SEGMENT
DAT DB XXH
SQRTAB DB 0,1,4,9,...81
SQR DB?
DATA ENDS
STACL1 SEGMENT PARA STACK
DW 20H DUP(?)
STACK1 ENDS
CODE SEGMENT
ASSUME CS:CODE,DS:DATA,SS:STACK1
START: MOV AX,DATA
MOV DS,AX

CALL SUBROT

MOV AH,4CH
INT 21H
SUBROT PROC
PUSH AX
PUSH BX
LEA BX,SQRTAB
MOV AL,DAT
TEST AL,80H
JNS NEXT
NEG AL
NEXT: XLAT SQRTAB
MOV SQR,AL
POP BX
POP AX
RET
SUBROT ENDP
CODE ENDS
END SRART
3. 试编写出把DX、AX中的双字右移四位的程序段。
MOV CL,04
SHR AX,CL
MOV BL,DL
SHR DX,CL
SHL BL,CL
OR BL,AH
4. 定义一个数据区,它包含有23H,24H,25H和26H四个字符数据,把这个数据区复制20次,并显示出复制结果。
DATA SEGMENT
PATTERN DB 23H,24H,25H,26H
DISPLAY DB 80 DUP(‘ ’),‘$’
DATE ENDS
CODE SEGMENT

CLD
LEA SI,PATTERN
LEA DI,DISPLAY
MOV CX,80
REP MOVSB
MOV AH,09H
LEA DX,DISPLAY
INT 21H
RET
CODE ENDS

阅读更多 >>>  mt6737相当于骁龙多少

汇编语言程序设计习题

1.写出下列程序段执行的结果,(AL)=? (DL)=?
并指出此程序段完成的是什么功能?
MOV CL, 4
MOV AL, 87d=57H
MOV DL, AL
AND AL, 0FH
OR AL, 30H
SHR DL, CL
OR DL, 30H
(AL)=37H (DL)=35H
程序段完成功能是:把AL中的16进制数高位送DL,移位取出低位,
再分别转化为对应的ASCII码.
2.假定DS=2100H,BX=0100H,SI=0002H;
[21100H]=12H,[21101H]=34H,[21102H]=56H,[21103H]=78H。
2100:100H=12H,34H,56H,78H
分析下列指令执行后寄存器的内容。
(1) MOV AX,[101H] ;ax=5634H
(2) MOV AX,[BX+2] ;ax=[0102H]=7856H
(3) MOV AL,[BX][SI+1] ;al=[0103H]=78H
(4) MOV AX,100H[SI] ;ax=[0102H]=7856H
3.识别下列指令正确与否,对错误指令,说明出错的原因。
(1) MOV DS,100 × ;数据段不允许用立即数赋值
(2) MOV [1000H],23H ×;立即数送入内存需指明是字还是字节
(3) MOV [1000H],[2000H] ×;源和目标不能同为内存数
(4) MOV DATA,1133H ? ;如用DATA定义过数据段,DATA就不能再用作变量名
(5) MOV 1020H,DX ×;目标不能是立即数
(6) MOV AX,[0100H+BX+BP] ×;寻址时,BX、BP只能用一个
(7) MOV CS,AX ×;CS不能直接赋值
(8) PUSH AL ×;堆栈不能压入字节,只能压入字(32位压入双字)
(9) PUSH WORD PTR[SI] √
(10) IN AL,378H ×;端口寻址大于0FFH,端口号源要放入DX
(11) OUT 80H,AX √
(12) MOV CX,[AX+SI]×;AX不能用于内存寻址

.汇编语言程序设计考题,求高手解答

一、判断题(5道小题,共15分)
1、MASM汇编语言的注释用分号开始,无所谓英文分号、还是中文分号。(3分)
错误
2、按照MASM语法编程时,可以将SHL作为8086指令的标号。(3分)
错误
3、指令“mov ax,ds:[100h]”中,若DS=1400H,则源操作数来自主存物理地址1500H。(3分)
错误
4、汇编结束END语句表明程序执行到此结束。(3分)
错误
5、指令的操作数使用存储器寻址方式,说明操作数保存在主存储器中。(3分)
正确
二、单项选择题(5道小题,共15分)
1、某个8086存储单元的逻辑地址为A400H:2400H,其物理地址是__B、A6400H__。(3分)
A、D7000H B、A6400H
C、3D400H D、0A640H
2、在8086处理器中,用来指示当前堆栈顶部的寄存器是__A、SP__。(3分)
A、SP B、IP
C、BP D、SS
3、已知字变量BUFFER内容等于1234H,保存于主存数据段偏移地址为5678H位置,
执行指令“MOV AX, BUFFER”后,AX=__C、3412H__。(3分)
A、7856H B、5678H
C、3412H D、1234H
4、汇编语言程序定义符号常量max等于100,正确的表达是__A、max = 100__。(3分)
A、max = 100 B、max db 100
C、max dw 100 D、max org 100
5、堆栈的操作原则可以描述为__B、后进后出__。(3分)
A、先进先出 B、后进后出
C、先进后出 D、循环

汇编语言程序设计试题,高手来!

1.唯一代表存储空间中每个字节单元的地址是___物理地址___。
2.JNC指令转移的测试条件是__C=0____。
3.将端口地址为30H中的数据传送到CPU中的指令是__IN AL, 30H__。
4.8086微处理系统中最多有__1024__个端口地址。
5.判断无符号数运算是否溢出,应根据__进位标志_C__标志位;而判断有符号数运算是否溢出应根据__溢出 OV___标志位。
6.执行 INT 10H指令,可从中断向量表__0040H___地址读出内容送IP,从__0042H___地址单元读出内容送CS。
7.语句 ASC DB ‘1234’设置了__4__个字节。
8.某微机有16条地址线,能够覆盖的地址范围是_0000H~FFFFH__。
9.8086CPU允许的最大存储空间为_1M 字节_,其地址编号从_00000H_到__FFFFF_H。
10.把AX中第0、1、3位清零,应使用的指令是_AND AX, 0FFF2H__。
11.设寄存器位数为8位,机器数采用补码形式(含一位符号位)。对应于十进制数-73的寄存器内容为__B7H___(用16进制表示)。
12.设A为字变量,指令MOV AX, A的源操作数寻址方式是__立即数寻址___。
LS第10题、第12题回答错误。
1.唯一代表存储空间中每个字节单元的地址是: 物理地址。
2.JNC指令转移的测试条件是: 进位标志位复位,即CF=0(源操作数不小于目的操作数)。
3.将端口地址为30H中的数据传送到CPU中的指令是: IN AL,30H。
4.8086微处理系统中最多有 1024 个端口地址。
5.判断无符号数运算是否溢出,应根据 进位 标志位;而判断有符号数运算是否溢出应根据 溢出 标志位。
6.执行 INT 10H指令,可从中断向量表 40H 地址读出内容送IP,从 42H 地址单元读出内容送CS。
7.语句 ASC DB ‘1234’设置了 4 个字节。
8.某微机有16条地址线,能够覆盖的地址范围是: 0000H~0FFFFH。
9.8086CPU允许的最大存储空间为 1M字节,其地址编号从 0000H 到 FFFFH H。
10.把AX中第0、1、3位清零,应使用的指令是: AND AX,0FFF4H。
11.设寄存器位数为8位,机器数采用补码形式(含一位符号位)。对应于十进制数-73的寄存器内容为: B7H(用16进制表示)。
12.设A为字变量,指令MOV AX, A的源操作数寻址方式是: 存储器直接寻址。

IBM-PC汇编语言程序设计练习题

第一大题的第六小题,一楼不肯定的题目的答案应该是外部符号
兄弟,你如果真的不懂,就算别人帮你做出来,你还是不懂啊,你还是自己先做,然后把不懂的发上来,问问大家吧
你要是能等的话,我明天把书本带上,慢慢帮你做。
看到这问题我们就知道:期末又到了~~~~-_,-
书上好多都有啊 只是代码编写要自己动下脑子
先做前两个大题吧
一:填空
1. AX又被称为(累加)器。
2. PF=1表示(低八位1的个数)为偶数。
3. 操作数直接存放在指令中,紧跟在操作码之后,他作为指令的一部分存放在代码段里,这种操作数称为(立即数)。
4. 62A0H+9D60H=(10000)H
5. 标号和变量都有三种属性:(1、段属性 2、偏移属性 3、类型属性)。
6. 在另一个模块中定义而要在本模块中使用的符号必须使用(段寻址)伪操作。(这题不肯定)
7. 逻辑运算是按(位)操作。
8. 循环程序通常由(初始化、循环工作与控制、循环结束的处理部分)三部分构成。
9. 129=(100000001)B
10. 机器数为88H,带符号十进制数(-120) 解题过程:88H即10001000B 第一个1表示是负数,而机器中的数都是以补码表示,补码又是原码变反加一,倒推一下,所以对应的正数是01111000,即120,所以~~
11. 将高级语言源程序翻译成机器语言程序的系统程序是(目标程序)。
12. (BP)称为基址指针寄存器。
13. 标识运算结果正负的标志是SF。SF=(1)时结果为正。
14. 8086实模式下一个段的大小可达(64K)B
15. 8086中可用于寄存器间接寻址的四个寄存器是(SP、BP、SI、DI)。
16. 在移位指令中,若移位次数大于1,就可将移位次数置于(CL寄存器)中。
17. 宏由(MACRO、ENDM)这一对伪指令来定义。
18. 访问堆栈的指令(如PUSH)只能使用(SS--堆栈段)作为段寄存器。
19. 指令CLD用于清除方向标志而(STD)指令使方向标志置1。
二。简答
根据以下要求,分别写出相应的汇编语言指令或指令序列。
1.把AX寄存器和BX寄存器的内容相减,结果存入AX中。
SBB AX,BX
2.将AX的内容逻辑左移5位。
MOV CL,5
SHL CL
3.将AX的内容,减去0520H和上次运算的借位。
SBB AX,0520H
4.将变量名TABLE的段地址送AX。
MOV AX,SEG TABLE
5.将DI的高四位置为0。
AND DI,0FH
6.输出一个字节到61H号端口。
OUT 61H,AL
7.将SI和DI的内容互换。
XCHG SI,DI

《汇编语言程序设计》复习题答案求救,分析题!高分,谢谢!

41答案如下:
SI是源地址寄存器,DI是目的地址寄存器,就是以源地址寄存器[SI]开始的64H个字节里面的内容,复制到以[DI]为始址的空间中去。CX是计数器嘛,就是复制64H个字节的内容,MOVSB就是MOV 以 B为单位!
42答案如下:
DATA SEGMENT
A DW 0
B DW 0
C DW 15H,5H,50H
DATA ENDS
CODE SEGMENT
.
.
MOV BX,OFFSET C
MOV AX,[BX] ;这一步后,AX=[BX]=15H
MOV B,AX ;B=15H
MOV AX,2[BX] ;2[BX]的意思是[BX+2],所以AX=05H
ADD AX,B ;15H+05H=1AH
MOV A,AX ;最后是1AH
六.程序填空
第一空 0FH
第二空 4AH.
这一题的基本思想就是把 BX 循环右移四位,取BL,赋给AL,与上0FH,把高四位清零,得低四位,再加上30H,判断是否超过A,因为A的ASCLL与0-9的ASCLL码不是连续的,所以要根据判断结果再加上07H,就这样了。
我原是汇编科代表呢!!哈哈
1,就是把DS:[SI]的一百个字节单元的内容传送到ES:[DI]开始的一百个字节单元中。
2,A=001AH
3,
---------------------------
CODE SEGMENT
MAIN PROC FAR
ASSUME CS:CODE
START:
PUSH DS
SUB AX,AX
MOV CH,4
ROTATE:
MOV CL,4
ROL BX,CL
MOV AL,BL
AND AL,0FH
ADD AL,30H
CMP AL,3AH
JL PRINTIT
ADD AL,7H
PRINTIT:
MOV DL,AL
MOV AH,2
INT 21H
DEC CH
JNZ ROTATE
POP DS
RET
MAIN ENDP
CODE ENDS
END START
我不懂。。。。。
不过你真的。。。。
MOV CX,64H
LEA SI,NAME1
LEA DI,NAME2
REP MOVSB


这段程序完成不就是重复执行将name1内存里面的内容放入name2中去呀,重复执行cx中指定的100次
下面的题目全是汇编语言相关的,你只要复习下课本,就可以做到了,题目不难

阅读更多 >>>  windows汇编语言程序设计,汇编语言是一种什么程序设计语言

汇编语言程序设计题目

一、改错(只能对每条错误指令的一个操作数进行修改)。(共10分,每小题1分)
1. MOV BX,AL 改正: MOV BX,BX
2. MOV AX, A999H 改正:MOV AX,0A999H
3. MOV AL, 1234 改正:MOV AX,1234
4. MOV AX, [CX] 改正:MOV AX,[BX]
5. MOV DS, 1000H 改正:MOV AX,1000H MOV DS,AX
6. ADD [BX],10 改正: ADD BYTE PTR [BX],10
8. PUSH AH 改正:PUSH AX
9. INC [BP] 改正:INC BYTE PTR [BP]
9. MOV [DI],WORD PTR [SI] 改正:MOV DI,WORD PTR [SI]
10. MUL 10 改正:MOV CX,10 MUL CX
AX是改单片机的累加器或者工作寄存器吗?

汇编语言程序设计题

我只能给你写主程序,其它的自己加吧。
第一题:先定义一个内存缓冲区,然后用dos功能调用
从键盘输入字符串到缓冲区。然后将缓冲区数据分类,
DL存小写字母个数,DH存数字个数,BH存其它字符个数。
BUFF DB 100 ;定义100字节缓冲区
DB ? ;系统填入实际输入字节数
DB 100 DUP(?)
MOV AX, DATA
MOV DS, AX
MOV DX, OFFSET BUFF
MOV AH, 0AH ;10号功能调用,从键盘
;输入字符,回车键结束。
INT 21H
MOV BX, DX
MOV CL, [BX+1]
LEA SI, OFFSET BUFF
ADD SI, 2
XOR BX, BX
XOR DX, DX
BEGIN:MOV AX, [SI]
CMP AX, 'z'
JA THREE
CMP AX, 'a'
JL TWO
INC DL
JMP NEXT
TWO: CMP AX, '9'
JA THREE
CMP AX, '0'
JL THREE
INC DH
JMP NEXT
THREE:INC BH
NEXT: INC SI
LOOP BEGIN
MOV AH, 2
INT 21H
MOV DL, 20H
INT 21H
MOV DL, DH
INT 21H
MOV DL, 20H
INT 21H
MOV DL, BH
INT 21H
第二题:先定义缓冲区存放结果,二进制转换为八进制
时,三位二进制为一位八进制,16位共6位;转16进制
时,4位二进制为一位16进制,共4位。显示要用ASCII码,
所以每一位占一个字节,共10个字节。所以至少定义10
字节的缓冲区。
BUFF DB 20 DUP(?) ;定义20字节缓冲区
MOV AX, DATA ;将数据装入AX
MOV DS, AX
LEA DI OFFSET BUFF ;DI指向缓冲区首字节
XOR BX, BX ;BX清零
MOV CL, 9 ;设置循环次序
ROL AX, 1 ;八进制首位转换
RCL BX, 1
JMP NEXT
BEGIN: XOR BX, BX ;八进制其它5位转换
PUSH CL
MOV CL, 3
ONE: ROL AX, 1
RCL BX, 1
LOOP ONE
POP CL
DEC CL
JMP NEXT
BEGIN2:XOR BX, BX ;16进制转换
PUSH CL
MOV CL, 4
TWO: ROL AX, 1
RCL BX, 1
LOOP TWO
POP CL
DEC CL
CMP CL, 0
JE NEXT2
NEXT: AND BX, 30H ;转ASCII码
MOV [DI],BX ;储存
INC DI
CMP CL, 4
JA BEGIN
JL BEGIN2
MOV [DI],20H
INC DI
JMP BEGIN2
NEXT2:MOV DX,OFFSET BUFF ;DX指向缓冲区首字节
MOV AH,9 ;9号功能调用
INT 21H
汇编语言程序设计模拟题
一、填空:
1、CPU的指令指针寄存器为: ,它与 寄存器联用确定下一条指令的物理地址。
2、若要将所有数据及代码都放在一个段内,应建立 存储模型。
3、操作数:ES:TABLE[DI]、FEES[EBX*2]、MSAK[EAX][EBX]分别采用 、
、 寻址方式。
4、读取当前光标位置可使用BIOS INT 10H的 号功能调用,作为出口参数,光标的行号及列号将从 寄存器中获得。
5、通常用CPU的 寄存器间接寻址端口地址。
6、如果在宏定义体设置局部标号,应使用 伪操作以避免在宏展开时出现标号的多重定义。
7、设(CS)=2A31H,(DS)=9300H,(SS)=25F0H,(BP)=0131H,(SI)=0110H,(DI)=0102H,则指令MOV AX,[BP+SI+8]的源操作数有效地址为________________,物理地址为_________________。
8、设(AX)=1000H,(BX)=2340H,则在执行了指令CMP AX,BX后,CF标志值为___________,ZF标志值为______________。
9、外设的发出中断请求若被CPU响应,有两个条件必不可少,即 和 。
10、显示字符串可使用DOS 9号功能,它要求被显示的字符串最后一个字符必须是 。
11、中断发生时,保存现场将 、 、 寄存器的内容存入堆栈。
12、n位二进制补码数的表数范围为: 。
13、将两个不同模块中的同名段重叠成两个段中较大的一个段,在定义段时应采用 组合属性。
14、操作数:ES:STRING[SI]、COUNT[ESI*4]、MSAK[EBX][ECX]分别采用 、 、 寻址方式。
15、设置光标位置可使用BIOS INT 10H的 号功能调用,作为入口参数,光标的行号及列号应存入 寄存器。
16、通常用CPU的 寄存器间接寻址端口地址。
17、若在模块1中引用模块2中定义的外部符号,则在模块1和模块2中的开头分别使用
、 伪指令。
18、设(CS)=25FFH,(DS)=2140H,(SS)=2510H,(BP)=02D0H,(SI)=0010H,(DI)=0206H,则指令MOV AX,[BP+SI+2]的源操作数有效地址为_________________,物理地址为____ __________。
19、有数据定义如下:
V1 DB 4 DUP(2),2
COUNT EQU 10
V2 DD COUNT DUP(8,5 DUP(?))
则:为变量V1分配____________个字节存贮空间;V2分配____________个字节存贮空间.
20、外设的发出中断请求若被CPU响应,有两个条件必不可少,即 和 。
21、子程序之间传递参数可使用 、 和 三种方式。
22、若中断类型为4AH,则中断向量的地址为 。
23、CPU的指令指针寄存器为: ,它与 寄存器联用确定下一条指令的物理地址。
24、当端口号≥256时,使用IN或OUT指令,必须先将端口号放到 寄存器。
25、操作数:ARY[EAX*2]、ES:[TABLE+SI]、SUM[EBX][EDX]分别采用 、
、 寻址方式。
26、变量有三属性,分别为: 、 、 。
27、如果在宏定义体设置局部标号,应使用 伪操作以避免在宏展开时出现标号的多重定义。
28、宏定义必须由伪指令 开始,伪指令 结束。
29、设(CS)=9896H,(DS)=9100H,(SS)=25F0H,(BX)=0111H,(SI)=0810H,(DI)=0102H,则指令MOV [BX+SI+8],CX的目的操作数有效地址为___ ________,物理地址为____ _________。
30、读取当前光标位置可使用BIOS INT 10H的 号功能调用,作为出口参数,光标的行号及列号将从 寄存器中获得。
31、中断发生时,保存现场将 、 、 寄存器的内容存入堆栈。
32、若:FEES DW 10 DUP(10,5 DUP(?)),则指令:MOV CX,LENGTH FEES执行后,(CX)= .
二、选择题
1、 下列寄存器中,( )可作为基址寄存器。
A、AX B、BX C、CX D、DX
2、 下列指令序列中,清除当前中断请求(EOI)命令为:( )
A、MOV AL,20H B、MOV AL,20H C、MOV AL,21H D、MOV AL,21H
OUT 20H,AL IN AL,20H OUT AL,21H IN AL,21H
3、 段定义时,使用( )定位类型,则该段必须从小段的边界开始。
A、BYTE B、WORD C、DWORD D、PARA
4、 若:(BX)=4336H,(CX)=0136H指令:SUB BX,CX 执行后,SF、ZF、OF、CF标志分别为( )
A、0,0,0,0 B、0,1,0,0 C、1,0,0,0 D、0,0,0,1
5、 若:FEES DW 10 DUP(100,?)
指令:MOV CX,LENGTH FEES执行后,CX的内容为:( )
A、1000 B、1 C、10 D、2000
6、 在循环指令中作为计数器的是( )寄存器。
A、AX B、BX C、CX D、DX
7、 在执行除法指令时,若除数为零则产生一个类型号为( )的中断。
A、0 B、1 C、3 D、4
8、 段定义时,使用( )定位类型,则该段必须从字的边界开始。
A、PARA B、WORD C、DWORD D、BYTE
9、 若:(BX)=4336H,(CX)=0136指令:SUB BX,CX 执行后,SF、ZF、OF、CF标志分别为:( )
A、0,0,0,1 B、0,1,0,0 C、1,0,0,0 D、0,0,0,0
10、若:FEES DW 100 DUP(?),
则指令:MOV CX,LENGTH FEES执行后,CX的内容为:( )
A、100 B、1 C、10 D、0
11、下列寄存器中,( )不能作为变址寄存器。
A、EAX B、EBP C、ECX D、ESP
12、 下列指令序列中,哪条指令与SUB AX,AX效果相同:( )
A、AND AX,AX B、OR AX,AX C、XOR AX,AX D、NOT AX
13、 将两个不同模块中的同名段重叠成两个段中较大的一个段,应采用( )组合属性。
A、PUBLIC B、COMMON C、PRIVATE D、MEMORY
14、 若:(AX)=0F365H,(CX)=0E024H指令:ADD AX,CX 执行后,SF、ZF、CF、OF标志分别为:( ).
A、1,0,1,0 B、0,1,0,0 C、0,0,0,0 D、0,0,0,1
15、 显示字符串可使用DOS 9号功能,它要求被显示的字符串最后一个字符必须是( ).
A、& B、$ C、% D、@
三、判断下列指令及伪指令是否正确(在括号中打“√”或“×”):
1、DIV 20H ( )
2、XCHG BX,ES ( )
3、CMP [BX],TABLE[SI] ( )
4、IN AL,DX ( )
5、MOV BYTE PTR[BX],25H ( )
6、MOV CS,0200H ( )
7、RET 8 ( )
8、LEA TABLE,BX ( )
9、ACL1 MACRO A,B,C ( )

ACL1 ENDM
10、NEWP PROC ( )

NEWP ENDP
11、MUL 20H ( )
12、MOV BX,[SI][DI] ( )
13、CMP [BX],TABLE[SI] ( )
14、OUT DX,AL ( )
15、MOV [DX],25H ( )
16、POP CS ( )
17、RET 8 ( )
18、LEA TABLE,BX ( )
19、MOVE EQU MOV ( )
20、FEED MACRO X,Y,Z ( )

FEED ENDM
21、ADD ES:BX,20H ( )
22、XCHG DX,DS ( )
23、CMP [BX],TABLE[SI] ( )
24、OUT DX,AL ( )
25、RET 8 ( )
26、DATA1 DB DATA0 ( )
27、MOVE EQU MOV ( )
四、完成下列指令序列:
1、将数据段中字串STRING1(长度为N),传送到附加段中以BUFF为首地址的缓冲区:

MOV SI,
MOV DI,
MOV CX, N
CLD
REP
2、分别用一条语句实现下述指明的功能
(1)变量AYD存放的地址指针送ES和SI
(2)AX的内容加1,要求不影响CF
.CODE
MAIN PROC FAR
MOV AX,@DATA
MOV DS,AX1、设置中断向量(中断例行程序为INTERHAND,中段类型号为N)

MOV AX,SEG INTERHAND
MOV DS,AX
MOV DX,
MOV AL,N
INT 21H

INTERHAND:

IRET
3、清除全屏幕

MOV AX,
MOV BH,7
MOV CX,
MOV DX,
INT 10H

4、分别用一条语句实现下述指明的功能
(1)字变量LIST存放的地址指针送ES和DI.
(2)将AX的内容加1,要求不影响CF.
(3)将BX的高4位置1,其余位不变.
(4)将SI指向的字单元内容存入堆栈.
(5)比较两个带符号数,若前者≥后者,则转向NEXT.
5、清除屏幕右半区域:

MOV AX,
MOV BH,7
MOV CX,0
MOV DX,
INT 10H

6、 MOV CL,8
SHL AX,CL
SHR BX,CL
ADD AX,BX
MOV WORD PTR DATA1,AX
问:上述指令序列的功能是什么?
7、 ┆
MOV AL,N
MOV AH,35H
INT 21H
PUSH ES
PUSH BX
PUSH DS
MOV AX,SEG INTERHAND
MOV DS,OFFSET INTERHAND
MOV AL,N
MOV AH,25H
INT 21H
POP DS

问:上述指令序列的功能是什么?
8、分别用一条语句实现下述指明的功能:
① 栈顶内容弹出送字变量MG1.
② 变量MG2类型属性送AH.
③ AX的内容加1,要求不影响CF.
④ 将EBX的低4位取反.
⑤ 若(CX)=0则转移至NEXT.
五、分析计算题:
1. 设(AX)=201BH,(BX)=110CH,(DI)=0001H,(DS)=4000H,(4110CH)=0AH,(4110DH)=81H,(4110EH)=70H;
则:① MOV AX,[BX]指令执行后,(AX)= ;
② MOV BH,BYTE PTR[BX+DI+1],指令执行后,(BX)= .
2.
MOV AX,6540H
MOV DX,3210H
MOV CL,04
SHL AX,CL
MOV BL,AH
OR DL,BL
试问上述程序段运行后,
(AX)=
(BL)=
(DX)=
3、
DATA1 DW 1000H
DATA2 DW 2000H

PUSH DATA1
PUSH DATA2
POP DATA1
POP DATA2
问:①上述程序段执行后,(DATA1)= ,(DATA2)= .
②设执行前(SP)=200H,执行后(SP)= .
4、 BUFF DB 7 , 6 , '56' ,?
ARRAY DW 0 , 67H , 7
BASUB EQU ARRAY-BUFF
问:BASUB的值是多少?它表示什么意义?
5、
MOV CL,3
MOV BX,0B7H
ROL BX,1
ROR BX,CL
问:上述程序执行完毕,BX寄存器的内容是什么?
6、

.DATA
STRING1 DB 50,?,50 DUP(?)
NEXT:
LEA DX,STRING1
MOV AX,0AH
INT 21H
CMP STRING1+2,0DH
JE EXIT
JMP SHORT PTR NEXT
EXIT:
MOV AX,4C00H
INT 21H
MAIN ENDP
END MAIN
说明上述指令序列的功能。
7.设(AX)=9A6CH,(BX)=710BH,(DI)=0002H,(DS)=6000H,(6710BH)=09H,(6710CH)=87H
(6710EH)=5EH;
则:① MOV AX,[BX]指令执行后,(AX)= ;
② MOV BL,BYTE PTR[BX+DI+1],指令执行后,(BX)= .
8. OPER1 DB 1,2
OPER2 DW 1234H,5678H
则: 指令 ① MOV AX,WORD PTR OPER1+1执行后,(AX)= .
② MOV AL,BYTE PTR OPER2执行后,(AL)= .
③ MOV AH,SIZE OPER2执行后,(AH)= .
六:叙述题:
调用程序和子程序之间参数传递有哪几种主要方式? 各自的特点是什么?
简述8086CPU的中断响应过程。
简述子程序调用与宏调用工作方式的区别。
七:程序设计:
1、设X、Y、Z、W均为16位带符号数单元地址,写出执行下述计算的子程序。
Z=│X+Y-W│
2、编写汇编语言源程序:测试ALPHA字节变量单元中的ASCII码字符串,进行如下操作:
(1)若为数字字符,送入NUM字节单元中,置标记FLAG为0;
(2)若为大写字母字符,送入BICCHR字节单元中,置标记FLAG为0;
(3)若为小写字母字符,送入SMLCHR字节单元中,置标记FLAG为0;
(4)否则,置标记FLAG为1.
(字符0,9,A,Z,a,z的ASCII分别为30H,39H,41H,5AH,61H,7AH)
3、设X、Y、Z均为16位带符号数单元地址,写出执行下述计算的子程序。
X+Z ,X≥Z
Y=
X-Z ,X<Z
4、已知有256个字节整数a1,a2,a3,...,a256存放在以NUMBER为首地址的数据区中。编一程序将其中的负数去除后将剩下的正数重新顺序存放在以PLUS开始的数据区中。
5、 编写程序段。用串处理指令,比较两个有10个字符的字符串变量CHR1和CHR2,如果两者全不相同则执行子程序OTHER,否则,顺序执行。
6、编写汇编语言源程序: 设在字单元A、B和C中存放有三个数,若三个数都不为0,则求出三个数之和存入字单元D中,若有一个为0,则将其他两个单元也清零。

阅读更多 >>>  快捷指令淘客怎么关闭

汇编语言程序设计填空题和问答题部分

1.为零
2.偏移
3.4位
4.group name db(前两个不太确定,你再查一下吧)
5.CX
6.CALL RET
7.MACRO ENDM 宏体
8. 设DS=2200H,BX=1000H,SI=0100H,偏移量D=0A2B1H,试计算出下列各种寻址方式下的有效地址,填入括号中。
A.使用D的直接寻址 (0A2B1H )
B.使用BX的寄存器间接寻址 (1000H)
C.使用BX和D的寄存器相对寻址(0B2B1H)
D.使用BX、SI和D的相对基址变址寻址 (0B3B1H)
E.使用BX、SI的基址变址寻址(1100H)
9.结束返回
10.CLD STD
11.指出下一条将要被执行的指令在代码段中的偏移地址
12.0~255 00H~FFH -128~127 80H~7FH
13.提供段地址
14.软件系统和硬件系统
15.SS
16.DI
17.初始化部分 循环部分 控制部分(这个也要查一下你们的教材,不同的教材可能不一样)
18.符号地址(这个不确定啊,查查教材吧)
19.数据段—ds 代码段—cs 附加段—es 堆栈段—ss
20.二进一
1.mov ax,10
mov bl,10
mov cl,4
2.立即寻址
变址寻址
寄存器直接寻址
基址变址寻址
隐含寻址(或称为固定寻址)
问题补充:
1.C
2.D

汇编语言程序设计题目,在线等答案!!!急!

;------------------------------------------------------------
14.假设变量A存放字节数据是39H, 变量B存放字节数据是36H,试编写程序实现将两个数组合后成为96 H,存放变量C中.
;------------------------------------------------------------
MOV AL, A ;取来A
AND AL, 00001111B
MOV CL, 4
SHR AL, CL ;左移4位.
MOV CL, AL
MOV AL, B ;取来B
AND AL, 00001111B
ADD AL, CL ;合成.
MOV C, AL ;保存.
END
;------------------------------------------------------------
15.比较两个变量A和B的大小,在屏幕上显示比较结果.(A>B、A<b )
;------------------------------------------------------------
DATA SEGMENT
A DB 39H ;在这里写入:0~255
B DB 36H ;在这里写入:0~255
MSG1 DB 13, 10, 'A >= B $'
MSG2 DB 13, 10, 'A < B $'
DATA ENDS
CODE SEGMENT
ASSUME CS:CODE, DS:DATA
START:
MOV AX, DATA
MOV DS, AX
MOV AL, A ;取来A
SUB AL, B ;减去B
JB FU ;不够减转移.
LEA DX, MSG1 ;够减就显示A>=B
JMP DISP
FU:
LEA DX, MSG2
DISP:
MOV AH, 9 ;显示字符串.
INT 21H
MOV AH, 4CH
INT 21H
CODE ENDS
END START
;------------------------------------------------------------
其它题目,也回答了不少,可见楼主提问的其它网页。

网站数据信息

"汇编语言程序设计期末考试,汇编语言程序设计题"浏览人数已经达到21次,如你需要查询该站的相关权重信息,可以点击进入"Chinaz数据" 查询。更多网站价值评估因素如:汇编语言程序设计期末考试,汇编语言程序设计题的访问速度、搜索引擎收录以及索引量、用户体验等。 要评估一个站的价值,最主要还是需要根据您自身的需求,如网站IP、PV、跳出率等!