XOR AX,AX ;设累加器初值
AGAIN:
2、利用查表法计算平方值。已知0 ~ 9的平方值连续存在以SQTAB开始的存储区域中,求SUR单元内容X的平方值,并放在DIS单元中。假定0≤X≤ 9且为整数。(15分) 解:建立平方表,通过查表完成。 STACK SEGMENT
DB 100 DUP(?)
ADD
AL,[SI]
ADC AH,0 INC DEC CX JNZ MOV
AGAIN ;循环累加 SUM,AX SI
STACK ENDSDATA
SEGMENT SUR DB ? DIS DB ?
SQTAB DB 0,1,4,9,16,25,36,49,64,81 ; 0~9的平方表
DATA ENDS CODE SEGMENT
ASSUME CS:CODE,DS:DATA,SS:STACK,ES:DATA
BEGIN:PUSH DS
MOV PUSH MOV MOV
AX,0
AX ;保证返回DOS, AX,DATA
DS,AX ;为DS送初值
LEA BX,SQTAB ;以下程序部分完成查表求平方值 MOV MOV ADD MOV
AH,0 ;亦可用查表指令完成(如下程序段) AL,SUR ;AL=X LEA BX, SQTAB BX,AX ; MOV AL, SUR AL,[BX] ; XLAT
6
MOV DIS,AL ; MOV DIS, AL
CODE ENDS
END BEGIN
3、在中断向量表中查找从键盘输入的字符,并将其个数用二进制形式显示出来。 code SEGMENT ;代码段开始 ASSUME CS:code
begin: MOV AX, 0000H ;设置查找首地址 MOV DS, AX MOV SI,0000H
MOV CX,0400H ;设置查找长度 MOV BX,0 ;计算值初值 MOV AH,01H ;从键盘输入 INT 21H ;输入关键字 MOV DL,AL
;保存在DL中
next: LODSB ;从串取 CMP AL, DL ;与关键字比较 JNZ point
INC BX ;计算值加1 point: LOOP next ;查找结束? CALL display ;调用显示子程 MOV AH,4CH ;用二进制显示BX内容子程 display PROC
MOV CX, 16 ;显示位数 rotate: ROL BX, 1 MOV DL, BL AND DL, 01H ADD DL, 30H MOV AH, 2H INT 21H LOOP rotate
RET ;子程返回 display ENDP
7
;调用4CH功能
INT 21H ;返回DOS
code ENDS ;代码段结束 END begin
四、设计题
1、设有若干片256K×8位的SRAM芯片,问:
(1) 采用字扩展方法构成2048KB的存储器需要多少片SRAM芯片? (2) 该存储器需要多少字节地址位?
(3) 画出该存储器与CPU连接的结构图,设CPU的接口信号有地址信号、数据信号、控制信号MREQ#和R/W#。
解:(1) 该存储器需要2048K/256K = 8片SRAM芯片;
(2) 需要21条地址线,因为221=2048K,其中高3位用于芯片选择,低18位作为每
个存储器芯片的地址输入。
(3) 该存储器与CPU连接的结构图如下。
MREQ# A20-18OE# 3-8译ramsel R/W# A20-0 ramsel ramsel A 17-0WE
… ramsel
CPU D7~D0 256K 256K 256K ×8 ×8 ×8 D ~D ~D ~D D D DDD707070WE WE 256K ×8 D ~D D70WE
2、设有若干片256K×8位的SRAM芯片,问:
(1) 如何构成2048K×32位的存储器? (2) 需要多少片RAM芯片? (3) 该存储器需要多少地址位?
(4) 画出该存储器与CPU连接的结构图,设CPU的接口信号有地址信号、数据信号、
控制信号MREQ#和R/W#。 答:
? 因为32位,因此4片为一组,构成256K×32位,2048/256=8组。 ? 需要8×4=32片
8
? 2M=221 MREQ# A 22-20 A :单项选择题 DU:多项选择题 TK:填空题 MC:名词解释 A DX v JD:简答题 CXFX:程序分析题 CXTK:程序填空题 BC:编程题 R/W# 第1章:基础知识 22-219-2OE# ramsel3-8 译码 ramselramsel … ramsel1、在汇编语言程序的开发过程中使用宏功能的顺序是( C )。 DX WE A WE A WE A WE A CPUA、宏定义,宏调用 B、宏定义,宏展开 256Kx8256Kx8C、宏定义,宏调用,宏展开 256Kx8 D、宏定义,宏展开,宏调用 256Kx84片4片4片4片2、汇编语言源程序中,每个语句由四项组成,如语句要完成一定功能,那么该语句中不可DDDD省略的项是( B )。 DX D31~D0D31~D0D31~D0D31~D0A、名字项 B、操作项 C、操作数项 D、注释项 D31~D03、可屏蔽中断就是它的请求是否被CPU响应要受 ( IF )的控制。 DX 4、使用LINK连接命令,执行后可生成文件的扩展名为( EXE )。 DX 5、在寄存器间接寻址中,如果指令中指定的寄存器为BP,则操作数在 堆栈 段中,段地址在 SS 寄存器中。 TK
6、注释项用于说明程序段或是一条和几条指令的功能,一般用 ;(或分号) 表示注释的开始。 TK
7、DOS系统功能调用方式为:(1)置入口参数;(2)中断程序编号送 AH 寄存器后执行INT 21H。 TK
8、通常主程序和子程序间参数传送的方法有三种: 用寄存器传递 、 用存储单元传递、用堆栈传递(顺序可调换)。 TK
9、 中断 是CPU暂停当前程序的执行,转而执行处理紧急事务的程序,并在该事务
处理完后能自动恢复执行原先程序的过程。在此,称引起紧急事务的事件为 中断源 。 TK
10、在字符串操作指令中,DS∶ SI 指向源串,ES∶ DI 指向目的串。 TK
11、计算机系统通过 接口 与外围设备通信。 TK
12、键盘I/O、显示I/O和打印I/O分别对应 16H 、 10H 和 17H 号中断。 TK
13、字符显示模式缓冲区中的一个字对应于屏幕上的一个字符。每个字的第一个字节为显示字符的 ASCII码 ,第二个字节为显示字符的 属性 。 TK
14、简述上机运行汇编语言程序的过程。 JD
答:首先打开未来汇编,新建一个空的汇编文件,后缀为.asm,然后输入汇编程序代码,保存,再编译成机器指令,然后连接成可执行文件,即exe文件,最后再运行。
15、简述程序中指令和伪指令的区别。 JD
答:能被计算机识别并执行的二进制代码,它规定了计算机能完成的某一操作。
伪指令是对汇编起某种控制作用的特殊命令,其格式与通常的操作指令一样,并可加在汇编程序的任何地方,但它们并不产生机器指令。
16、十六进制数88H,可表示成下面几种形式,请找出错误的表示(④ )。 DX ① 无符号十进制数136 ② 带符号十进制数-120 ③ 压缩型BCD码十进制数88
9
④ 8位二进制数-8的补码表示 17、指令指针寄存器是(IP )。 DX
18、汇编语言语句格式中对名字项的规定如下,请找出其中错误的说法(B) DX A.名字的第一个字符可以是大写英文字母及小写英文字母 B.名字的第一个字符可以是字母、数字及、@、_ C.名字的有效长度≤31个字符 D.在名字中不允许出现$
19、CS寄存器属于( 段寄存器 )。 DX 20、已知物理地址(371F0H)=12H,(371F1H)=34H,(371F2H)=56H,如从地址371F0H中取出一个字的内容是( 3412H )。 DX
21、一个有16个字的数据区,它的起始地址是70A0H∶DDF6H,则这个数据区最末一个字单元的物理地址是( 7E814H )。 DX
22、简述上机运行汇编语言程序的过程。 JD 答:首先打开未来汇编,新建一个空的汇编文件,后缀为.asm,然后输入汇编程序代码,保存,再编译成机器指令,然后连接成可执行文件,即exe文件,最后再运行。
第2章:8086/8088的寻址方式和指令系统
1、下列指令属于基址加变址寻址方式的是( MOV DX,DS:[BP][SI] )。 DX 2、当程序顺序执行时,每取一条指令语句,IP指针增加的值是( D )。 DX A.1 B.2 C.3 D.由指令长度决定的 3、下列属于合法的指令是( D ) DX
A.MOV DS,ES B.MOV [SI],[DI] C.MOV AX,BL D.MOV [DI],BL 4、若AX=349DH,CX=000FH。则执行指令AND AX,CX后,AX的值是( 000DH )。 DX 5、设DS=8225H,DI=3942H,指令NEG BYTE PTR[DI]操作数的物理地址是( 85B92H ) DX 6、下列寄存器组中在段内寻址时可以提供偏移地址的寄存器组是( B ) DX A、AX,BX,CX,DX B、BX,BP,SI,DI C、SP,IP,BP,DX D、CS,DS,ES,SS 7、对寄存器AX的内容乘以4的正确指令序列是( SHL AX,1 SHL,AX,1 )。 DX 8、执行INC指令除对SF、ZF有影响外,还要影响的标志位是( OF,AF,PF )。 DX 9、设DH=10H,执行NEG DH指令后,正确的结果是( DH=0F0H CF=1 )。 DX 10、下列传送指令中有语法错误的是( A )。 DX
A、MOV CS,AX B、MOV DS,AX C、MOV SS,AX D、MOV ES,AX
11、下面指令执行后,改变AL寄存器内容的指令是( D )。 DX
A、TEST AL,02H B、OR AL,AL C、CMP AL,BL D、AND AL,BL 12、执行除法指令后,影响的标志位是( AF,CF,OF,PF,SF,ZF都不确定 )。 DX 13、执行下面指令序列后,结果是( AX=0FF82H )。 DX MOV AL,82H CBW
14、与MOV BX,OFFSET VAR指令完全等效的指令是( D )。 DX A、MOV BX,VAR B、LDS BX,VAR C、LES BX,VAR D、LEA BX,VAR 15、在段定义时,如果定位类型用户未选择,就表示是隐含类型,其隐含类型是( PARA )。 DX
16、MOV SP,3210H
PUSH AX 执行上述指令序列后,SP寄存器的值是( 320EH )。 DX 17、BUF DW 10H DUP(3 DUP(2,10H),3,5)
上述语句汇编后,为变量BUF分配的存储单元字节数是( 100H )。 DX
10