文档库 最新最全的文档下载
当前位置:文档库 › 第三章汇编语言程序设计

第三章汇编语言程序设计

第三章汇编语言程序设计
第三章汇编语言程序设计

第三章汇编语言程序设计

3.1 填空题

1. 汇编语言是一种____①___,它用___②___来表示操作码,用___③____或___④___来表示操作数或操作数地址,它与___⑤____是一一对应的。

[答案]①符号语言,②助记符,③符号,④符号地址,⑤机器指令

2. 计算机中的指令由_______ 和 _______ 两部分组成。

[答案]操作码字段,操作数字段

3. 指出下列指令源操作数的寻址方式:

MOV AX ,ARRAY [SI] ___①____

MOV AX ,EX: [BX] ____②______

MOV AX , [200H] ____③______

MOV AX , [BX+DI] ____④______

MOV AX , BX ____⑤______

MOV AX , 1200H ____⑥______

MOV AX , 20[BX+SI] ____⑦______

MOV AX , [DI+20] _____⑧_____

[答案]①编制寻址方式

②寄存器间接寻址方式

③直接寻址方式

④基址变址寻址方式

⑤寄存器寻址方式

⑥立即寻址方式

⑦相对基址变址寻址方式

⑧变址寻址方式

4. 现有(DS)=2000 H ,(BX)=0100 H ,(SI)=0002 H ,(20100)=12H ,(20101)=34H ,(20102)=56 H ,(20103)=78H ,(21200)=2 AH,(21201)=4CH ,(21202)= B7 H ,(21203)= 65 H ,下列指令执行后填入AX 寄存器的内容:

①MOV AX ,1200H ; (AX)=_______

②MOV AX ,BX ; (AX)=_______

③MOV AX ,[1200H] ; (AX)=_______

④MOV AX ,[BX] ; (AX)=_______

⑤MOV AX , 1100[BX] ; (AX)=_______

⑥MOV AX ,[BX][SI] ; (AX)=_______

⑦MOV AX ,1100[BX][SI] ; (AX)=_______

[答案] ①1200 H,②0100H ,③4C 2AH ,④3412 H,⑤4 C2AH ⑥7856 H,⑦65B7H

5. 对于乘法,除法指令,其目的操作数存放在—①——或—②——中,而其源操作数,可以用除—③——以外的任一种寻址方式。

[答案]①AX ,②DX,AX ,③立即数

6. 假设(DS)= 000H ,(BX =080AH ,(0B080AH)=05AEH,(0B080CH=4000H当执行指令“LES DI ,[BX]”后,(DI)=—①——,(ES)= ——②——。

[答案]①05AEH ,②4000H

7. 对于指令XCHG BX ,[BP+SI] ,如果指令执行前,(BX)=6F30H ,(BP)=0200H ,(SI)=0046H ,(SS)=2F00H ,(2F246H)= 4154H ,则执行指令后:(BX)=___①____, (2F246H)=__②____.

[答案]①4154H,②6F30H

8. 假设(DS)=2000H,(BX)=1256H,(SI)=528 FH ;位移量TABLE =20A1H,(232F7H)=3280H,(264E5H)=2450H,则

执行指令JMP BX后,(IP)=—①_____ ;

执行指令JMP TABLE[BX]后,(IP)=—②______;

执行指令JMP [BX][SI]后,(IP)=—③______ .

[答案] ①1256H,②3280H,③2450H

9. 数据段中有以下定义:

ARRAY1 EQU 16H

ARRAY2 DW 16H

请指出下面两条指令的寻址方式:

MOV AX ,ARRAY1 ; 寻址方式:——①——。

MOV AX ,ARRAY2 ; 寻址方式:——②——。

[答案]①立即寻址方式,②直接寻址方式

10. 下面两个语句的区别在于——①——,——②——。

X 1 EQU 1000H

X 2 = 1000H

[答案]①X1 不能多次赋值,②X2 可以多次赋值

11. 调用指令CALL 可分为_______ ,______ ,______ 和_______ 等四种调用。

[答案] 段内直接调用,段内间接调用。段间直接调用,段间间接调用

12. 令(AL)=98H ,(CF)=12H ,则执行指令MUL BL 后,(AX)=____①__,(OF)=___②___,(CF)=___③___ ;而执行指令IMUL BL后,它们的结果是(AX)=___④__—,(OF)=___⑤____,(CF)=___⑥____。

[答案]①0A8CH ,② 1 ,③ 1 ,④0F88CH ,⑤ 1 ,⑥ 1

13. 执行下列指令序列后,完成的功能是将(DX,AX )的值______.

MOV CL, 04

SHL DX, CL

MOV BL, AH

SHL AX, CL

SHR BL, CL

OR DL, BL

[答案] 左移四位

14. 对于下面的数据定义:

A1 DW20 DUP (?)

A2 DB20 DUP (?)

A3 DL …987654321?

…….

MOV AX, LENGTH A1

MOV BX, LENGTH A2

MOV CX, LENGTH A3

各条指令执行后,相应寄存器的内容为: (AX ) =___①___ , ( BX) =___②___ , ( CX)

=_______③_____.

[答案] ①20 ,② 20 ,③ 1

15. 对于下面的数据定义 ,各条MOV 指令单独执行后,请填充有关寄存器的内容:

TABLE1DB?

TABLE2 DW20 DUP(?)

TABLE3 DB …ABCD?

……..

MOV AX ,TYPE TABLE1 (AX) = __①_____

MOV BX ,TYPE TABLE2 (BX) = ___②_____

MOV CX ,LENGTH TABLE2 (CX) = ____③___

MOV DX ,SIZE TABLE2 (DX) = __④_____

MOV SI ,LENGTH TABLE3 (SI) = _____⑤___

[答案]① 1 ,② 2 ,③ 20 ,④ 40 ,⑤ 1

16. 下列程序段运行后,A 单元的内容为________.

DATA SEGMENT

A DW 0

B DW 0

C DW 230, 20, 54

DA TA ENDS

CODE SEGMENT

ASSUME CS: CODE, DS: DA TA

START PROC FAR

PUSH DS

XOR AX, AX

PUSH AX

MOV AX, DA TA

MOV DS, AX

MOV BX, OFFSET C

MOV AX, [BX]

MOV B, AX

MOV AX, 2[BX]

ADD AX, B

MOV A, AX

RET

START ENDS

CODE ENDS

END START

[答案] 250

17. 设(SS) = 0FFA0H ,(SP) = 00B0H ,(AX) = 8057H ,(BX) =0F79H ,执行指令“PUSH AX”后,(SP) = ___①___;在执行指令:

PUSH BX

POP AX

后, (SP) = __②_____ ,(AX) = __③____ ,(BX) = ___④______.

[答案]①00AEH ②00AEH ③0F79H ④0F79H

18. (AL) = 9AH , (BL) = 0BCH ,当分别进行下列指令运算后,请写出标志位的内容:

(1) ADD AL, BL ; ZF =_____, PF = _____, CF = _____, SF = ______, OF = ______ .

(2) SUB AL, BL ; ZF = ____, PF = _____, CF = _____, SF = ______, OF = ______ .

(3) AND AL, BL ; ZF = ____, PF = _____, CF = _____, SF = ______, OF = ______.

(4) OR AL, BL ; ZF = ____, PF = ______, CF = _____, SF = ______, OF = ______.

(5) XOR AL, BL ; ZF = ____, PF = ______, CF = _____, SF = ______, OF = ______.

[答案] (1) 0 ,1 ,1 ,0 ,1

(2) 0, 1, 1, 1, 0

(3) 0, 0, 0, 1, 0

(4) 0, 1, 0, 1, 0

(5) 0, 0, 0, 0, 0

19. 阅读下面的程序.在_①___ 的情况下,本段程序的执行结果是(AH) = 0 ; 在___②____ 的情况下,其结果为(AH) = 0FFH .

IN AL, 20H

TEST AL, 80H

JZ A

MOV AH, 0

JMP B

A: MOV AH, 0FFH

B: HLT

[答案]①AL中的最高位为1 ,②AL中的最高位为0

20. 下面程序的功能是: 数组A 包含15个互不相等的整数,数组B 包含20个互不相等的整数,将既在数组A 中又在数组B 中出现的整数存放在数组C 中.请在程序填充完整.

DA TA SEGMENT

A DB15 DUP(?)

B DB20 DUP(?)

C DB15 DUP(?)

DA TA ENDS

CODE SEGMENT

ASSUME CS: CODE, DS: DA TA

MAIN PROC FAR

START: PUSH DS

XOR AX, AX

PUSH AX

MOV AX, DA TA

MOV DS, AX

MOV ES, AX

BEGIN: MOV SI, 0

MOV BX, 0

MOV CX, 15

NEXT1: PUSH CX

MOV DI, 0

MOV CX, 20

MOV AX , ____①___

NEXT2: CMP B [DI], AX

JNE ___②____

MOV C [BX], AX

ADD BX, 2

ABCD: ADD DI, 2

LOOP __③______

ADD SI, 2

____④_____ CX

LOOP NEXT1

RET

MAIN ENDP

CODE ENDS

END START

[答案]①A[SI] ,②ABCD ,③NEXT2 ,④POP

3.2 选择题

1. 一般地,我们将计算机指令的集合称为_______ .

(A) 机器语言(B) 汇编语言

(C) 模拟语言(D) 仿真语言

[答案] (A)

2. 计算机系统软件中的汇编程序是一种_________ .

(A) 汇编语言程序

(B) 编辑程序

(C) 翻译程序

(D) 将高级语言程序转换成汇编语言程序的程序

[答案] (C)

3. 汇编语言源程序经汇编后不能直接生成_______ .

(A) .OBJ 文件(B) .LST 文件

(C) .EXE 文件(D) .CRF 文件

[答案] (C)

4. MOV AX ,ES :[BX][SI] 的源操作数的物理地址是_______ .

(A) 16d* (DS) + (BX) + (SI) (B) 16d* (ES) + (BX) + (SI)

(C) 16d* (SS) + (BX) + (SI) (D) 16d*(CS) + (BX) + (SI)

[答案] (B)

5. INC 指令不影响_______标志 .

(A) OF (B) CF

(C) SF (D) ZF

[答案] (B)

6. 下列指令中,有语法错误的是_________ .

(A) MOV [SI] ,[DI] (B) IN AL ,DX

(C) JMP WORD PTR [BX + 8] (D) PUSH WORD PTR 20[BX + SI – 2] [答案] (A)

7. 假定(SS) = 2000H, (SP) = 0100H, (AX) = 2107H, 执行指令PUSH AX后, 存放数据21H 的物理地址_____________.

(A) 20102H (B) 20101H

(C) 200FEH (D) 200FFH

[答案] (D)

8. 执行下列指令后;

MOV AX, 1234H

MOV CL, 4

ROL AX, CL

DEC AX

MOV CX, 4

MUL CX

HLT

寄存器AH的指____①______, 寄存器AL的值是______②________

① (A) 92H (B) 8CH

(C) 8DH (D) 00H

② (A) 60H (B) 00H

(C) 04H (A) A0F

[答案] ①(C), ②(B)

9. 执行下列程序;

MOV AX, 0

MOV BX, 1

MOV CX, 100

A: ADD AX, BX

INC BX

LOOP A

HLT

执行后的结果为(BX) = ______①____ ,(AX) = ______②____.

① (A) 99 (B) 100

(C) 101 (D) 102

② (A) 5000 (B) 5050

(C) 5100 (D) 5150

[答案]① (C), ② (B)

10. 下面的程序是将10个8位的无符数按递减次序排序. 请选择正确的答案将程序填充完整. DA TA SEGMENT

ARRAY DB 05H, 78H, FFH, 7BH, 00H

DB 8CH, 20H, A0H, F0H, 60H

DA TA ENDS

CODE SEGMENT

ASSUME CS: CODE, DS: DATA

MAIN PROC FAR

START: PUSH DS

XOR AX, AX

PUSG AX

MOV AX, DATA

MOV DS, AX

AB1: MOV SI, OFFSET ARRAY

MOV BL, 0

MOV CX, 10

_______①_______

AGAIN: MOV AL, [SI]

INC SI

CMP AL, [SI]

______ ②_____ CD1

MOV AH, [SI]

MOV [SI], AL

DEC SI

MOV [SI], AH

INC SI

MOV BL, 1

DC1: LOOP AGAIN

DEC BL

_____③________AB1

RET

MAIN ENDP

CODE ENDS

END START

①(A) INC BL (B) INC SI

(C) DEC CX (D) INC CX

②(A) JC (B) JNC

(C) JE (D) JA

③(A) JC (B) JNE

(C) JZ (D) JP

[答案] ①(C),②(B),③(C)

11. 执行下列程序,选择正确的结果:

MOV SP, 2000H

MOV AX, 0F0H

MOV SI, 1234H

MOV DX, 5678H

PUSH SI

POP DI

SHL DX, 1

TEST AX, DX

PUSH DX

HLT

①SP = _______ ;

(A) 2000H (B) 1FFFH

(C) 2001H (D) 1FFEH

②DH 内容所在存储器的偏移地址为________;

(A) 1FFFFH (B) 1FFEH

(C) 1FFDH (D) 1FFCH

③DL 内容所在存储器的便移地址为________;

(D) 1FFFH (B) 1FFEH

(C) 2000H (D) 1FFDH

④AX =_______;

(A) 0H (B) 78H

(C) 0F0H (D) 56H

⑤DI =_______;

(A) 1234H (B) 5678H

(C) 2000H (D) 00F0H

⑥DX =_______;

(A) 5678H (B) 0ACF0H

(C) 2B3CH (D) 0ABF0H

⑦标志位CF =_________;

(A) 0 (B) 1

(C) 不定

⑧标志位ZF = _________.

(A) 0 (B) 1

(C) 不定

[答案]①(D) ②(A)③(B)④(C)

⑤(A) ⑥(B ) ⑦(A) ⑧(A)

12. 下列程序执行后, 请选择正确的结果:

MOV AX, 1234H

MOV BX, 5678H

ADD AL, BL

DAA

MOV CL, AL

MOV AL, AH

ADC AL, BH

DAA

①(AL) = ________

(A) 69 (B) 78

(C) 56 (D) 34

②(CL) = ________

(A) 12 (B) 34

(D) 56 (D) 78

[答案] ①(A) ②(A)

13. 将AL中带符号数乘10 送AL,正确的程序段是__________.

(A) SAL AL, 1 (B) ADD AL, AL

MOV BL, AL MOV BL, AL

SAL AL, 1 ADD AL,AL

SAL AL, 1 ADD AL, AL

ADD AL, BL ADD AL, AL

(C) MOV CL, 4 (D) ADD AL, AL

MOV BL, AL ADD AL, AL

SAL AL, CL ADD AL, AL

ADD AL, BL ADD AL, AL

ADD AL, AL

[答案] (A) , (B)

14. 交换寄存器SI, DI 的内容, 正确的程序段是___________ .

(A) PUSH SI (B) PUSH SI

PUSH DI PUSH DI

POP SI POP DI

POP DI POP SI

(C) MOV AX, SI (D) MOV AX, SI

MOV SI, DI MOV BX, DI

MOV DI, AX XCHG BX, AX

[答案] (A) , (C)

15. 完成41 H 送[ 2100H ]的正确程序段是____________ .

(A) MOV AL, 41H (B) MOV SI, 2100H

MOV [2100H], AL MOV [SI], …A?

INC AL INC SI

MOV [2100], AL MOV [SI], …B?

(A) MOV AX, 4241H (D) MOV AX, …AB?

MOV [2100H], AX MOV AX, [2100H] ,AX

[答案] (B) ,(C)

16. 将离加器AX 的内容清零的正确指令是________ .

(A) AND AX, 0 (B) XOR AX, AX

(C) SUB AX, AX (D) CMP AX, AX

[答案] (A) ,(B) ,(C)

3.3 是非判断题

1. MOV AX ,[BP] 的源操作数的物理地址为16d * (DS) + (BP) .( )

[答案] 错误

2. 段内转移要改变IP , CS 的值 .( )

[答案] 错误

3. 条件转移指令只能使用于段内直接短转移.( )

[答案] 正确

4. 立即寻址方式不能用于目的操作数字段.( )

[答案] 正确

5. SP 的内容可以不指向堆栈的栈顶.( )

[答案] 错误

6. DIV SRC 执行字节除法时,运算后的商存放在(AH) 中余数存放在(AL) 中. ( ) [答案] 错误

7. 逻辑操作符AND ,OR ,XOR ,和NOT ,只能用于数字表达式.( )

[答案] 正确

8. 判断下列指令是否正确,若错误,请指出原因.

①MOV DI, OFFSET [BX] [SI]

②PUSH AL

③SHL AX, 3

④OUT CX, AL

⑤POP CS

⑥MOV AX, [SI] [DI]

⑦MOV AH, BX

[答案]①错误.OFFSET 后面必须是字或字节变量 .

②错误.堆操作只能是16位.

③错误.移位次数大于1时,应将移位次数赋值给CL .

④错误.应该是OUT DX, AL .

⑤错误.不能给CS 赋值.

⑥错误.不能同时使用SI 和DI两个寄存器 .

⑦错误.类型不匹配.

第四章.接口技术

4.1 填空题

1.微型计算机的输入输出借口主要包括_________,_________,_________,___________和___________等五个部分.

[答案]数据寄存器,状态寄存器,控制寄存器,总线缓冲器,译码器及联络控制逻辑.

2.一般I/O借口的编址方式可以分为__________和__________两种方式.

[答案]I/O借口单独编址,与存储器统一编址.

3.CPU与I/O设备之间的数据传送方式有__________,__________,__________和______________等四种方式.

[答案]无条件传送方式,查询传送方式,中断传送方式,直接数据通道传送(DMA)方式.

4. Intel 8255 A 是一个__________借口芯片.

[答案]可编程的通用并行输入输出.

5.8255A内部具有_______ 个输入输出端口.

[答案]3

6.8255A的每个端口的数据寄存器的长度为__________位.

[答案]8

7.8255A的三个端口中只有端口________没有输入锁存功能.

[答案]C

8.8255A的端口A的工作方式是由方式控制字的_________位决定.

[答案] D6和D5

9.8237A有_______ 个完全独立的DMA通道.

[答案]4

10.8237A一共占用___ 个输入输出端口地址.

[答案]8

11.8237A的基本字数寄存器的长度为________-位.

[答案]16

12. Intel 8251A 工作在同步方式时, 最大波特率为__①____; 工作在异步方式时, 最大波特率为__②______. [答案]①64kbps (kb/s)

②19.2kbps (kb/s)

13. Intel 8251A工作在异步方式时, 每个字符的数据位长度为____①_____, 停止位的长度为_____②_______, [答案]①5~8位, ②1位或1.5位或2位

14. Intel 8251A 从串行输入线上接收好了一个字符, 将信号_______置为有效.

[答案] RxRDY (Receiver Ready)

15. D/A转换器一般由______①____, ____②________, _____③_______ 以及_____④等部分组成.

[答案]①基准电源, ②电阻解码网络, ③运算放大器, ④缓冲寄存器

16. ADC0809是一个分辨率为______①.____位, 具有______②____路模拟量输入, 基于

_____③_____原理A/D的转换器

[答案]①8位,②8,③逐次逼近式转换

4.2选择题

1. Intel8255A使用了_________个端口地址.

(A) 1 (B) 2

(C) 3 (D) 4

[答案] (D)

2. 在Intel8255A中可以进行按位置位/复位的端口是____________,

(A) 端口A, (B) 端口B,

(C) 端口C

[答案] (C)

3. 8255A能实现双向传送功能的工作方式为____________.

(A) 方式0, (B) 方式1

(C) 方式2 (D)方式3

[答案] (C)

4. 8255A的端口A或端口B工作在方式1输入时, 端口与外部设备的联络信号有_________.

(A) 选通输入STB (B)中断请求信号INTR

(C) 中断允许信号INTE (D)输入缓冲器满信号IBF

[答案] (A), (D)

5. 8255A工作在方式1的输入状态时, 通过信号_________知道端口已经准备好了输入的数

据.

(A) READY (B) ACK

(C) OBF (D) INTE

[答案] (D)

6.8255A 的端口A 工作方式2时,端口B可以工作在__________.

(A) 方式0 (B)方式1

(C) 方式2 (D) 输入

[答案] (A) (B) (C) 和(D)

7.在DMA数据传送方式中,实现地址的修改与传送字节数计树的主要功能部件是_________.

(A )CPU (B) 运算器

(C) 存储器(D) DMAC

[答案] (D)

8.在DMA 传送方式下,外部设备与存储器之间的数据闯送通路是_____________.

(A) 数据总线DB (B) 专用数据通路(C) 地势总线AB (D) 控制总线CB

9在DMA 方式下,CPU 与总线的关系是___________.

(A) 只能控制数据总线(B)只能控制地址总线

(C)成隔离状态(D)成短接状态

10.在8237A中传送数据的地址改变可以是___________---.

(A) 加1 (B) 加3

(C) 减1 (D)减3

11.在.8237A的扩展写时序中,8237A输出写信号的状态周期是__________________

(A)S1(B)S4

(C) S3(D)S4

[答案](A)和(D)

12 ilntel 8251A 可以工作在_______________--.

(A) 同步方式(B)异步方式

(C) 全双工方式(D)半双工方式

[答案] (A) (B) (C)

13. ilntel 8251A 对时钟信号输入端CLK的频率要求是_____________

(A) 工作在同步方式时,应大与数据传送的30倍

(B) 工作在异步方式时, 应大与数据传送的4.5倍

(C) 应在740.7K H Z~2.38MK Z范围

(D) 应在19.2 K H Z~64 K H Z~范围

14. CPU了解Intel8251A是否接收好一个字符数据的方法是____________,

(A) CPU通过程序查询信号线RxRDY的状态

(B) CPU响应Intel8251A的中断请求

(C) CPU通过程序查询RxD信号的状态

(D) CPU 通过程序查询请求传送信号CTS

[答案] (A), (B)

15. 当Intel8251A工作在异步方式时, 其波特率系数可以设置成__________,

(A) 1 (B) 8

(C) 16 (D) 64

[答案] (A), (C), (D)

16. Intel8251A中控制发送和接收字符的速度的时钟信号是___________.

(A)CPU的工作时钟(B)接收器时钟RxC (C)发送器时钟TxC (D)CLK输入

[答案] (B), (C)

17. Intel8251A工作在同步方式时, 使用的同步字符可以是____________.

(A) 没有同步字符(B) 1个同步字符

(C) 2个同步字符(D) 3个同步字符

[答案] (B), (C)

18.一个8位D/A转换器的分辨能力可以达到满量程的_____________.

(A) 1/8 (B) 1/256

(C) 1/16 (D) 1/32

[答案] (A), (B)

19. 如果一个D/A转换器的精度为士0.1%, 则其最大可能误差为___________,

(A) 最大输入的士1%0(B) 电源电压的士0.1%

(C) 满量程电压的士1%0(D) 输出电压的士1%0

[答案] (C)

20.反映一个D/A转换器元器件稳定性的技术指标是_____________.

(A) 精度(B) 分辨率

(C) 输出阻抗(D) 电源敏感度

[答案] (A)

21. 某一应用场合对D/A转换的非单调性要求很高,要求绝对单调性,应该选用;

(A) 权电阻解码网络D/A转换器

(B) T型电阻解码网络D/A转换器

(C) 开关树型D/A转换器

[答案] (C)

22. 逐次逼近式A/D转换器属于___________转换器.

(A) 直接转换式(B) 间接转换式

(C) 时间/数字转换式(D) 频率/数字转换式

[答案] (A)

23. 如果A/D转换器发生漏码错误, 从其工作原理上看可能采用的是_____________.

(A) 逐次逼近式(B) 双积分型

(C) 并行比较式(D) 电压频率式

[答案] (A)

24.当CPU与A/D转换器连接时, 启动A/D转换开始的CPU输出信号是_____________.

(A) WR (B) RD

(C) CPU地址信号AB (D) 数据信号DB

[答案] (A), (C)

25. 使用256KB*4的存储器芯片组成1MB的存储器系统, 其地址线至少需要_____________.

(A) 20条(C) 16条

(C) 24条(D) 12条

[答案] (A)

26. 在对存储器进行访问时, 地址线有效和数据线有效的时间关系应该是___________.

(A) 同时有效同时无效

(B) 地址线较先有效

(C) 数据线较先有效

[答案] (B)

27. 在Intel2164动态RAM存储器中, 对存储器刷新的方法是_____________.

(A) 每次一个单元(B) 每次刷新512个单元

(C) 每次刷新256个单元(D) 一次刷新全部单元

[答案] (B)

28. 设存储器的地址线为20条, 存储单元为字节, 使用全译码方式组成存储器, 该系统构成最大存储器容量需要64K*1位的存储器芯片的数量是________________.

(A) 16片(B) 32片

(C) 64片(D) 128片

[答案] (D)

4.3是非判断题

1.可以用Intel8237A 将存储器的某一个存储单元的内容传送到一个连续的存储单元

中.( )

[答案]正确.

2.在8237A的数据传送过程中,每传送一个字节的数据,现行地址器总是减1,指向下一个单元地址.( )

[答案]错误

3.在8251单字节传送方式中,CPU每响应一次DMA请求,只能传送一个字节的数据.( ) [答案]正确

4. Intel8251A工作在异步串行方式时,每个字符数据为的长度为5~8位,因此通信双方可以在此范围内任意改变数据位的长度.( )

[答案]错误

5.8251A与异步调制接调器连接时,一般不能直接相连.

[答案] 正确

6.8251A不能同时实现发送数据和接收数据的功能.( )

[答案] 错误

7.CPU 可以控制8251A按照半双工方式工作.( )

[答案] 正确

8当D/A转换器与CPU相连时,如果CPU的数据总线的位数小于D/A转换器的为数,则需要采用多级缓冲结构.()

[答案]正确

9.从ADC0809的工作原理上看,它不会发生漏码错误.()

[答案]正确

10.ADC0809与CPU相接时,其模拟输入通道的地址由CPU提供.为了确保它对输入信号的可靠转换,需要在它们之间加上地址锁存器.( )

[答案] 错误

11.从D/A转换器的工作原理看,T型电阻解码网络D/A转换器比权电阻解码网络D/A转换容易做到较高的精度.( )

[答案] 正确

12静态随机存储器中的内容可以永久保存.( )

[答案] 错误

13.对只读存储器只能进行读取操作,不能执行写操作.( )

[答案]错误

14.动态RAM存储器芯片MK4564只有8条地址线,因此可以推断其存储容量不超过512个存储单元.( )

[答案]错误

实验四-循环结构汇编语言程序的设计实验报告

循环结构汇编语言程序设计实验报告

实验四循环结构汇编语言程序设计 一、实验目的 1、学习循环结构的汇编语言程序的设计和调试。 2、学习通过直接对8086计算机的寄存器和存的直接访问,编写更高效简洁的汇编程序。 3、加深掌握计算机整体的工作过程。 3、加深对排序算法的理解。 二、实验任务 编写程序求出数组A中(20个元素)的最大值和最小值(数组没有排序)。 要求至少采用二种不同的排序算法来实现。( 快速排序,归并排序、堆排序、Shell排序、插入排序、冒泡排序、交换排序、选择排序、基数排序……) 三、实验容 为了更好地实现老师所布置的实验任务,我们根据情况选取以下两种方式实

验。 1、利用冒泡排序的方式求解数组A中元素的最大值最小值。设计流程图如 下所示: 2、利用选择排序的方式求得数组A中元素的序列。设计流程图如下所示:

四、实验环境 PC机: winXP/win7(32位)/win7(64位)+winxp 虚拟机 汇编工具:Masm.exe+Link.exe。 五、实验步骤 1)建立和生成的文件 (1)编写的源程序,源程序名为abc、扩展名为.asm (2)源程序经汇编程序Masm.exe汇编(翻译)后生成二进制目标程序,文件名为abc.obj (3)目标程序需要经Link.exe连接生成可执行程序,文件名为abc.exe 2)汇编环境 最基本的汇编环境只需要两个文件:Masm.exe和Link.exe。将这两个文件拷入到已经建好的文件夹(例如 huibian)中,并将文件夹huibian放在硬盘根

目录C :\>下 3)上机步骤 进入DOS窗口中执行。 4)调试程序 进入DEBUG后,调试程序 5)调试成功后重新汇编、连接并生成可执行代码 6)执行程序,并对运行结果截图。 利用冒泡排序求得数组A中元素的最大值最小值的实验结果如下图所示:(说明:输入数据为:13,0,59,900,587,1,657,234,34,48) 利用选择排序对数组A中元素排序得到的序列得实验结果如下图所示:(说明:输入数据为13,0,59,900,587,1,657,234,34,48)

汇编语言学习知识程序设计实验

目录 目录 (1) 实验一利用DEBUG熟悉常用指令的使用 (2) 一、实验目的 (2) 二、示例 (2) 三、实验题 (2) 实验二汇编程序和连接程序的使用 (6) 一、实验目的。 (6) 二、示例。 (6) 三、实验题。 (8) 实验三顺序结构程序设计 (11) 一、实验目的 (11) 二、示例 (11) 三、实验题 (12) 四、实验报告 (15) 实验四循环结构程序设计 (16) 一、实验目的 (16) 二、示例 (16) 三、实验题 (18) 实验五分支结构程序设计 (21) 一、实验目的 (21) 二、示例 (21) 三、实验题 (22) 实验六子程序设计 (29) 一、实验目的 (29) 二、实验题 (29)

实验一利用DEBUG熟悉常用指令的使用 一、实验目的 熟悉指令系统,掌握常用指令的用法;通过实验加深对各种寻址方式的理解;能熟练使用DEBUG中的命令对指令进行反汇编,观察并了解机器代码。 二、示例 请分别用一条汇编语言指令完成如下功能:(过程略)。 1.用寄存器BX和SI的基址变址寻址方式把存储器的一个字节与AL寄存器的内容相加,并把结果送到AL中。 ADD AL,[BX][SI] 2.用位移量为0520H的直接寻址方式把存储器中的一个字与3412H相加,并把结果送回该存储单元。 ADD WORF PTR [0520H],3412H 三、实验题 1.调试、验证下列指令的结果,已知(DS)=2000H,(BX)=0100H,(SI)=0002H,(BP)=0200H,(SS)=2300H,(20100)=12H,(20101)=34H,(20102)=56H,(20103)=78H,(21200)=2AH,(21201)=4CH,(21202)=B7H,(21203)=65H,(23204)=88H,说明各指令执行完后AX寄存器的内容。要求输入指令,相应存储单元的内容要事先设置,单步 P执行,观察执行结果。 (设置存储器的值)

汇编语言程序设计课后习题解答宋人杰2版

第1章汇编语言基础知识 1.简述汇编语言源程序、汇编程序、和目标程序的关系。 答:用汇编语言编写的程序称为汇编源程序;汇编源程序在汇编程序的翻译下转换成计算机语言变成目标程序。 2. 简述汇编语言的优缺点。 答:(1) 汇编语言的优点: ①可有效地访问、控制计算机各种硬件设备,如磁盘、存储器、CPU、I/O端口等。. ②目标代码简短,占用内存少,执行速度快,是高效的程序设计语言。 ③可与高级语言配合使用,应用十分广泛。 (2) 汇编语言的缺点: ①通用性和可移植性较差 ②相对于高级语言来说较繁锁、易出错、不够直观。 3.CPU的寻址能力为8KB,那么它的地址总线的宽度为多少? 答:13 4. 1KB的存储器有多少个存储单元? 答:1024个字节。 5. 指令中的逻辑地址由哪两部分组成? 答:指令中的逻辑地址由段基址和偏移量组成。 6. 以下为用段基址:偏移量形式表示的内存地址,试计算它们的物理地址。 (1) 12F8:0100 (2) 1A2F:0103 (3) 1A3F:0003 (4) 1A3F:A1FF 答: (1) 13080H (2) 1A3F3H (3) 1A3F3H (4) 245EFH 7. 自12FA:0000开始的内存单元中存放以下数据(用十六进制形式表示): 03 06 11 A3 13 01,试分别写出12FA:0002的字节型数据、字型数据及双字型数据 的值。 答:字节型数据:11H 字型数据:0A311H 双字型数据:0113A311H 8. 内存中某单元的物理地址是19318H,段基地址为1916H,则段内偏移地址为 多少?若段内偏移地址为2228H,则段基地址为多少? 答:若段基地址为1916H,则段内偏移地址为01B8H;若段内偏移地址为2228H,则段基地址为170FH 9. 在实模式环境中,一个段最长不能超过多少字节? 答:64KB 10. 实模式可寻址的内存范围是多少? 答:1MB

汇编语言程序设计实验报告

微机原理实验报告 实验名称汇编语言程序设计 一、实验目的 1、掌握Lab6000p实验教学系统基本操作; 2、掌握8088/8086汇编语言的基本语法结构; 3、熟悉8088/8086汇编语言程序设计基本方法 二、实验设备 装有emu8086软件的PC机 三、实验内容 1、有一个10字节的数组,其值分别是80H,03H,5AH,FFH, 97H,64H,BBH,7FH,0FH,D8H。编程并显示结果:如果数组是无符号数,求出最大值,并显示; 如果数组是有符号数,求出最大值,并显示。 2、将二进制数500H转换成二-十进制(BCD)码,并显示“500H 的BCD是:” 3、将二-十进制码(BCD)7693转换成ASCII码,并显示“BCD 码7693的ASCII是:” 4、两个长度均为100的内存块,先将内存块1全部写上88H,再 将内存块1的内容移至内存块2。在移动的过程中,显示移动次数1,2 ,3…0AH…64H(16进制-ASCII码并显示子程序) 5、键盘输入一个小写字母(a~z),转换成大写字母 显示:请输入一个小写字母(a~z): 转换后的大写字母是: 6、实现4字节无符号数加法程序,并显示结果,如99223344H + 第1页

99223344H = xxxxxxxxH 四、实验代码及结果 实验代码见代码附录 1.1程序运行结果 图1 无符号最大值结果截图 1.1 程序运行结果

图2 有符号最大值截图2.0 程序运行结果

图3 BCD码显示3.0 程序运行结果

图4 ASCII码显示4.0 程序运行结果

图5 移动次数显示5.0 程序运行结果

8086汇编语言程序设计

实验1 简单汇编语言程序设计 一、实验目的与要求 1.熟悉汇编语言运行、调试环境及方法。 2.掌握简单汇编语言程序的设计方法。 3.熟悉调试工具DEBUG,并运用DEBUG 工具调试程序。 二、实验内容 根据下列要求,编写汇编源程序,汇编连接汇编源程序,并利用DEBUG 工具调试程序,验证程序的正确性。 1. 若X、Y、R、W 是存放8 位带符号数字节单元的地址,Z 是16 位字单元的 地址。试编写汇编程序,完成Z←((W-X) ÷5-Y)?(R+ 2) 。 2.试编写一个程序,测试某数是否是奇数。如该数是奇数,则把DL 的第0 位置1,否则将该位置0。 三、实验报告要求 1.程序算法流程图。 2.源程序清单。 3.程序运行结果。 4.调试过程中遇到的问题和解决的方法。

实验2 分支及循环程序设计 一、实验目的与要求 1.熟悉汇编语言运行、调试环境及方法。 2.掌握分支程序和循环程序的设计方法。 3.熟悉调试工具DEBUG,并运用DEBUG工具调试程序。 二、实验内容 根据下列要求,编写汇编源程序,汇编连接汇编源程序,并利用DEBUG工具调试程序,验证程序的正确性。 1.编写汇编程序,统计某存储区若干个数据中英文字母的个数,并将结果在屏幕上显示。 2.从键盘任意输入一组字符数据,请编写汇编程序将该组数据加密后在屏幕上显示。参考加密方法是:每个数乘以2。(说明:本题的加密方法,同学们可以自己拟定) 三、实验报告要求 1.程序算法流程图。 2.源程序清单。 3.程序运行结果。 4.调试过程中遇到的问题和解决的方法。

实验3 子程序程序设计 一、实验目的与要求 1.熟悉汇编语言运行、调试环境及方法。 2.掌握子程序的设计方法。 3.熟悉调试工具DEBUG,并运用DEBUG工具调试程序。 二、实验内容 根据下列要求,编写汇编源程序,并利用DEBUG工具调试程序,验证程序的正确性。 1.编程以十进制形式和十六进制形式显示AX的内容,并把两个显示功能分别封装成子程序dispDEC和dispHEX。 2.设在以EXAMSCORE为首地址的数据缓冲区依次存放某班10名同学5门功课的成绩,现要统计各位同学的总分,并将总分放在该学生单科成绩后的单元,并调用第1个程序封装好的子程序,以十进制方式显示统计情况,显示格式自行设计。请编程完成此功能。数据缓冲区参考数据定义如下: EXAMSCORE DB 01 ;学号 DB 89,76,54,77,99 ;单科成绩 DW ? ;该学生的总分 DB 02 ;学号 DB 79,88,64,97,92 ;单科成绩 DW ? ;该学生的总分 三、实验报告要求 1.程序算法流程图。 2.源程序清单。 3.程序运行结果。 4.调试过程中遇到的问题和解决的方法。

汇编语言程序设计实验篇emu

1.汇编语言程序设计实验篇 1.1.汇编系统软件简介 Emu8086-Microprocessor Emulator是集源代码编辑器、汇编/反汇编工具以及debug 的模拟器。它能模拟一台"虚拟"的电脑运行程序,拥有独立的“硬件”,避免访问真实硬件。该软件兼容Intel的下一代处理器,包括PentiumII、Pentium4。利用该软件提供的调试工具,能够单步跟踪程序,观察程序执行过程中寄存器、标志位、堆栈和内存单元的内容。 1.1.1创建程序 https://www.wendangku.net/doc/229474174.html, TEMPLATE程序 本章与指令相关的实验都是用COM TEMPLATE类型的程序完成的。打开emu8086,在“welcome…”对话框中,单击按钮,创建文件。 在“choose code template”对话框中,选择“COM template-simple and tiny executable file format, pure machine code.”后,单击按钮。

在如所示的编辑界面中,在“;add your code here”部分输入相应的指令,第一条指令默认的偏移地址为100h。 输入全部指令后,单击按钮,保存相应的程序段。 2.EXE TEMPLATE程序 本章与DOS功能调用和汇编源程序相关的实验都是用EXE TEMPLATE程序完成的。打开emu8086,在“welcome…”对话框中,单击按钮,创建文件。

在“choose code template”对话框中,选择“EXE template-advanced executable file.header: relocation, checksum.”后,单击按钮。 在如图所示的编辑界面中,已经可以给出了源程序的框架,包含数据段、堆栈段和代码段的定义以及必要的功能调用等,在“add your data here”和“;add your code here”部分可以分别输入相应的变量定义和指令。

第四章MCS-51汇编语言程序设计

第四章MCS-51汇编语言程序设计 重点及难点: 单片机汇编语言程序设计的基本概念、伪指令、单片机汇编语言程序的三种基本结构形式、常用汇编语言程序设计。 教学基本要求: 1、掌握汇编语言程序设计的基本概念; 2、掌握伪指令的格式、功能和使用方法; 3、掌握顺序结构、分支结构和循环结构程序设计的步骤和方法; 4、掌握常用汇编语言程序设计步骤和方法。 教学内容 §4.1汇编语言程序设计概述 一、汇编语言的特点 (1)助记符指令和机器指令一一对应,所以用汇编语言编写的程序效率高,占用存储空间小,运行速度快,因此汇编语言能编写出最优化的程序。 (2)使用汇编语言编程比使用高级语言困难,因为汇编语言是面向计算机的,汇编语言的程序设计人员必须对计算机硬件有相当深入的了解。 (3)汇编语言能直接访问存储器及接口电路,也能处理中断,因此汇编语言程序能够直接管理和控制硬件设备。 (4)汇编语言缺乏通用性,程序不易移植,各种计算机都有自己的汇编语言,不同计算机的汇编语言之间不能通用;但是掌握了一种计算机系统的汇编语言后,学习其他的汇编语言就不太困难了。 二、汇编语言的语句格式 [<标号>]:<操作码> [<操作数>];[<注释>] 三、汇编语言程序设计的步骤与特点 (1)建立数学模型 (2)确定算法 (3)制定程序流程图 (4)确定数据结构 (5)写出源程序 (6)上机调试程序 §4.2伪指令 伪指令是程序员发给汇编程序的命令,也称为汇编命令或汇编程序控制指令。 MCS- 51常见汇编语言程序中常用的伪指令:

第四章MCS-51汇编语言程序设计91 1.ORG (ORiGin)汇编起始地址命令 [<标号:>] ORG <地址> 2.END (END of assembly)汇编终止命令 [<标号:>] END [<表达式>] 3.EQU (EQUate)赋值命令 <字符名称> EQU <赋值项> 4.DB (Define Byte)定义字节命令 [<标号:>] DB <8位数表> 5.DW (Define Word)定义数据字命令 [<标号:>] DW <16位数表> 6.DS (Define Stonage )定义存储区命令 [<标号:>] DW <16位数表> 7.BIT位定义命令 <字符名称> BIT <位地址> 8.DA TA数据地址赋值命令 <字符名称> DATA <表达式> §4.3单片机汇编语言程序的基本结构形式 一、顺序程序 [例4-1]三字节无符号数相加,其中被加数在内部RAM的50H、51H和52H单元中;加数在内部RAM的53H、5414和55H单元中;要求把相加之和存放在50H、51H和52H单元中,进位存放在位寻址区的00H位中。 MOV R0 ,# 52H ;被加数的低字节地址 MOV R1 ,# 55H ;加数的低字节地址 MOV A ,@ R0 ADD A ,@ R1 ;低字节相加 MOV @ R0 , A ;存低字节相加结果 DEC R0 DEC R1 MOV A ,@ R0 ADDC A ,@ R1 ;中间字节带进位相加 MOV @ R0 , A ;存中间字节相加结果 DEC R0 DEC R1 MOV A ,@ R0 ADDC A ,@ R1 ;高字节带进位相加 MOV @ R0 , A ;存高字节相加结果 CLR A

新版汇编语言程序设计钱晓捷第1章习题答案

第1章汇编语言基础知识(全) 2010-10-18 19:32:40| 分类:答案集锦| 标签:|字号大中小订阅 第1章汇编语言基础知识 〔习题1.1〕简述计算机系统的硬件组成及各部分作用。 〔解答〕 CPU:包括运算器、控制器和寄存器组。运算器执行所有的算术和逻辑运算;控制器负责把指指令逐条从存储器中取出,经译码分析后向机器发出各种控制命令,并正确完成程序所要求的功能;寄存器组为 处理单元提供所需要的数据。 存储器:是计算机的记忆部件,它用来存放程序以及程序中所涉及的数据。 外部设备:实现人机交换和机间的通信。 〔习题1.2〕明确下列概念或符号: 主存和辅存,RAM和ROM,存储器地址和I/O端口,KB、MB、GB和TB 〔解答〕 主存又称内存是主存储器的简称,主存储器存放当前正在执行的程序和使用的数据,CPU可以直接存取,它由半导体存储器芯片构成其成本高、容量小、但速度快。辅存是辅助存储器的简称,辅存可用来长期保存大量程序和数据,CPU需要通过I/O接口访问,它由磁盘或光盘构成,其成本低、容量大,但速 度慢。 RAM是随机存取存储器的英语简写,由于CPU可以从RAM读信息,也可以向RAM写入信息,所以RAM也被称为读写存储器,RAM型半导体存储器可以按地址随机读写,但这类存储器在断电后不能保存信息;而ROM中的信息只能被读出,不能被修改,ROM型半导体通常只能被读出,但这类存储器断电 后能保存信息。 存储器由大量存储单元组成。为了区别每个单元,我们将它们编号,于是,每个存储单元就有了一个存储地址,I/O接口是由一组寄存器组成,为了区别它们,各个寄存器进行了编号,形成I/O地址,通常 称做I/O端口。 KB是千字节、MB是兆字节、GB是吉字节和TB是太字节,它们都是表示存储器存储单元的单位。 〔习题1.3〕什么是汇编语言源程序、汇编程序、目标程序? 〔解答〕 用汇编语言书写的程序就称为汇编语言源程序;完成汇编工作的程序就是汇编程序;由汇编程序编 译通过的程序就是目标程序。

《汇编语言程序设计》考核方式

考核方式与要求 期末总成绩构成:期末开卷考试60% + 平时作业10% + 实验和实验报告30%。 1、试卷考核方式与要求 “汇编语言程序设计”的课程要求是使学生具有一定的程序设计能力。虽然课程是通过80x86微处理机来开展教学的,但学习的重点不仅仅是学会80x86指令的语法和规范,更重要的是通过多读程序、多练习编写程序来掌握程序设计的基本方法和技术,要求学生在工作中遇到其他机型,都应该能利用所掌握的方法和技术顺利解决实际问题。因此,我们在教学过程的各个环节,特别是具有指挥棒作用的考核环节中,着重体现了“能力培养是首位”的指导思想。 为此,汇编课一直实行多元化考核方式,在考核评分上,平时练习和上机实验占40%,期末考试占60%。期末考试实行开卷考试,这样学生平时学习的关注点就会放在分析问题和编程实现的方法上,有利于学生开阔思路,发挥自身创造力。每年设计开卷考试的考题是有一定难度的,教师必须非常熟悉课程的知识点、重点和难点,以及体现这些知识和能力水平的多种题目类型。 2、实验方式与要求 实验的目标为:加强课堂上相关理论和技术学习的有效性;提高学生上机编程和调试的能力;培养学生科学实践的理念和独立分析问题、解决问题的能力。其设计思想是:实验内容兼顾基础性和综合性,实验题目由简单→复杂,程序功能由单一→综合,实验安排有基本要求题+自选题,实验题类型有验证型和自主创新设计型。 √实验课组织形式: 1.系教学实验室按课程要求负责上机环境配置及实验设备管理; 2.以班为单位组织上机实验,并将上机时间安排表发至每位同学; 3.每单元实验课安排一位助教(助博)负责实验指导和答疑; 4.学生每做完一个实验即可提交老师验收,老师将实验运行结果记录下来作为实验成 绩的依据。验收时教师要注意发现比较突出的好的实验例题(完成时间短、程序运行效率高); 5.要求提交实验报告,根据实验报告及实验运行结果的记录,评出实验成绩,实验成 绩一般占总成绩的30%。 √教师指导方法: 1.大课集体指导。每学期实验前教师安排一次实验指导课,讲解实验方法和实验要求; 2.每次实验课都安排助教(助博)进行个别或集体的实验指导和答疑; 3.对具有共性的、问题比较多的实验,主讲教师在课堂上再进行集体指导; 4.每学期对实验中出现的问题,对照实验题目进行分析、总结,以利于以后的教学。 5.对于实验中有创新点的学生,还可以请他上讲台为同学们介绍他的设计思路,引发大家展开讨论。

实验一基础汇编语言程序设计

实验一基础汇编语言程序设计 实验目的 1.学习和了解TEC-XP十六位机监控命令的用法; 2.学习和了解TEC-XP十六位机的指令系统; 3.学习简单的TEC-XP十六位机汇编程序设计。 实验内容 1.使用监控程序的R命令显示/修改寄存器内容、D命令显示存储器内容、E命令修改存储器内容; 2.使用A命令写一小段汇编程序,U命令反汇编刚输入的程序,用G命令连续运行该程序,用T、P命令单步运行并观察程序单步执行情况。 3.学习联机使用TEC-XP教学试验系统和仿真终端软件。 实验要求 在使用该教学机之前,应先熟悉教学机的各个组成部分及其使用方法。 实验步骤 1.关闭电源,将大板上的COMl口与PC机的串口相连; 2.接通电源,在PC机上运行PCEC.EXE文件,设置所用PC机的串口为“l”或“2”,其它的设置一般不用改动,直接回车即可; 3.置控制开关为001110(连续、内存读指令、组合逻辑、16位、联机),开关拨向上方表示“1”,拨向下方表示“0”,“X”表示任意。其它实验相同; 4.按一下“RESET”按键,再按一下“START”’按键,主机上显示: 5.用R命令查看寄存器内容或修改寄存器的内容 1.用R命令查看寄存器或修改寄存器内容 1)在命令行提示符状态下输入: R↙;显示寄存器的内容 注:寄存器的内容在运行程序或执行命令后会发生变化。

2)在命令行提示符状态下输入: R R0↙;修改寄存器R0的内容,被修改的寄存器与所赋值之间可以无空格, 也可有—个或数个空格 主机显示: 寄存器原值:xxxx 在后面输入新的值0036 再用R命令显示寄存器内容,则R0的内容变为0036。 2.用D命令显示存储器内容 在命令行提示符状态下输入: D 2000↙ 会显示从2000H地址开始的连续128个字的内容; 连续使用不带参数的D命令,起始地址会自动加128(即80H)。

河北工业大学汇编语言知识程序设计实验

汇编语言程序设计实验 网络*** *** 实验一 顺序与分支程序设计 一 、实验目的 1) 掌握顺序程序设计方法。 2) 掌握分支程序的结构及分支程序的设计,调试方法。 2) 学习数据传送及算术和逻辑运算指令的用法。 3) 熟悉在pc 机上建立、汇编、连接、调试和运行汇编语言程序的过程。 二、实验内容 1.实验六 从键盘上接收一位十进制数x ,计算y 值,并以十六进制形式显示出来,y 按下列公式计算。 ???????===-=+=) 6(2/) 5()4(2) 3(22 2 2X X X X X X X X X X Y 2..实验七 实验内容:从键盘上接收两个一位十六进制数x 和y ,然后再输入一个a-d 之间的一个字符,按下列要求计算。 a) 当输入字符为a ,则计算x+y ,并以十六进 制形式显示出来 b) 当输入字符为b ,则计算|x-y|,并以十六进制形式显示出来 c) 当输入字符为c ,则计算x*y ,并以十六进制形式显示出来 d) 当输入字符为d ,则计算x/y ,并以十六进制形式显示出来 三、实验代码 实验六 DATE SEGMENT X DB ?

DATE ENDS ;数据段 CODE SEGMENT ASSUME CS:CODE,DS:DATE START:MOV AX,DATE ;代码段 MOV DS,AX ;初始化ds寄存器 MOV AH,1 INT 21H ;读文件到缓冲区 CMP AL,33H ;比较指令 JB L0 ;A

汇编语言的编程步骤与调试方法

汇编语言的编程步骤与调试方法 一、汇编源程序的建立 1. 使用工具 (1)EDIT,记事本等文本编辑软件,编辑源程序,保存为.asm文 件; (2)ASM,MASM汇编程序,对源程序进行汇编,生成.obj文件- 目标文件,以及调试用.LST-列表文件和.CRF-交叉引用表; (3)Link连接程序,对使用的目标文件和库文件进行连接,生 成.exe文件,同时调试用.map-地址映像文件; 如果源程序无语法错误,上述三步将生成可运行的.exe文件, 如果运行结果无误,则完成对汇编程序的编程,如果运行后结果存 在错误,需要进行调试。 (4)Debug调试程序,对.exe文件进行调试,修改,直到程序正 确。 图3 目标程序生成步骤图2. 编程过程 (1)用文本编辑软件,编写扩展名为.asm的源文程序文件。 (2)用汇编程序对编好的源文件进行汇编。 命令行:masm [*.asm] ↙ 如果源文件中存在语法错误,则汇编程序将指出错误类型及位置,可根据这些信息重新编辑源文件,直至无语法错误,汇编后,将生成指定名称的目标文件.obj。 使用MASM50汇编程序进行汇编,输入命令行masm或者masm *.asm后,根据提示,输入文件名,在汇编没有错误的情况下,如屏幕所示:汇编程序可生成三个文件,*.obj,*.lst和*.crf。 *.obj-目标文件,用于连接生成可执行文件; *.lst-列表文件(可选),汇编语言汇编的机器语言与汇编语言对照表,可用于

调试; *.crf-交叉引用文件(可选),给出了用户定义的所有符号和对每个符号定义、引用的行号。 (3)目标文件的连接 命令行:link [*.obj] [*.obj] [*.lib] ↙ 连接程序,将多个目标程序及库文件,连接生成可执行的*.exe文件,同时可选择生成*.map文件。 *.map-地址映像文件,给出内存地址分配的有关信息。 下图所示屏幕,为Link连接两个目标文件,没有错误的情况下,生成*.exe 文件。 (4)执行程序 执行*.exe文件,观察程序运行结果,如果存在错误,需要进行调试。调试工具DEBUG是针对汇编语言程序设计的一种调试工具,熟练使用DEBUG有助于汇编语言程序员对于逻辑错误的调试。 二、汇编程序的调试

汇编语言程序设计基本方法

第七章汇编语言程序设计基本方法1.教学目的:掌握微型汇编语言程序分析和设计方法 2.教学要求: ①熟悉汇编语言程序设计的基本步骤。 ②掌握程序流程图的使用,会利用其分析问题。 ③掌握汇编语言的顺序、分支、循环程序的设计。 ④了解实模式下80386及其后继机型的汇编语言的程序设计3.教学重点: ①利用流程图分析问题。 ②顺序、分支、循环程序的设计。 4.掌握难点: ①分支程序设计 ②循环程序设计 5.教学进程安排:P137~P168 6.教学方法: 课堂讲授 7.教学内容摘要: 7.1 汇编语言程序设计概述 7.1.1 汇编语言程序设计的基本步骤 1.分析问题,抽象出描述问题的数学模型 2.确定算法 3.绘制流程图 4.分配存储空间和工作单元 5.编写程序 6.静态检查 7.上机调试运行 7.1.2 程序流程图 1. 用自然语言表示算法 2. 流程图的组成 ⑴执行框(矩形框) ⑵判别框(菱形框) ⑶开始框和终止框 ⑷指向线 ⑸连接点 3. 三种基本结构和改进的流程图 ⑴传统流程图的弊端 ⑵三种基本结构 ①顺序结构 ②选择结构 ③循环结构

图7.4 顺序结构图图7.5 选择结构图 4. 结构化程序设计的特点 ⑴只有一个入口 ⑵只有一个出口 ⑶各功能框均可执行 ⑷结构中无死循环 7.2 顺序程序设计 顺序结构程序是最简单的程序,在顺序结构程序中,指令按照先后顺序一条条执行。 【例7-3】将—个字节压缩BCD码转换为两个ASCII码。 7.3 分支程序设计 7.3.1 分支程序的结构形式 分支程序结构可以有两种形式,如图7.6 (1) IF_THEN_ELSE结构 (2) CASE结构 7.3.2 分支程序设计方法 程序的分支一般用条件转移指令来产生,利用转移指令不影响条件码的特性,连续地使用条件转移指令使程序产生了多个不同的分支,而对于数组中的每一个数,它只能是多个分支中的某一个。 【例7-5】在附加段中,有一个按从小到大顺序排列的无符号数数组,其首地址存放在DI 寄存器中,数组中的第一个单元存放着数组长度,在AX中有一个无符号数,要求在数组中查找(AX),如找到,则使CF=0,并在SI中给出该元素在数组中的偏移地址;如未找到,则使CF=1。 【例7-6】折半查找算法程序 7.3.3 跳跃表法

【精品】汇编语言程序设计习题答案

钱晓捷新版汇编语言程序设计习题答案 第一章汇编语言基础知识 1.1、简述计算机系统的硬件组成及各部分作用 1。2、明确下列概念或符号: 主存和辅存,RAM和ROM,存储器地址和I/O端口,KB、MB、GB和TB 1.3、什么是汇编语言源程序、汇编程序、目标程序? 1。4、汇编语言与高级语言相比有什么优缺点? 1.5、将下列十六进制数转换为二进制和十进制表示 (1)FFH (2)0H (3)5EH (4)EFH (5)2EH (6)10H (7)1FH (8)ABH 1。6、将下列十进制数转换为BCD码表示 (1)12 (2)24 (3)68 (4)127 (5)128 (6)255 (7)1234 (8)2458 1.7、将下列BCD码转换为十进制数 (1)10010001 (2)10001001 (3)00110110 (4)10010000

(5)00001000 (6)10010111 (7)10000001 (8)00000010 1.8、将下列十进制数分别用8位二进制数的原码、反码和补码表示 (1)0 (2)—127 (3)127 (4)—57 (5)126 (6)-126 (7)—128 (8)68 1。9、完成下列二进制数的运算 (1)1011+1001 (2)1011-1001(3)1011×1001(4)10111000÷1001 (5)1011 ∧~1011 (8)1011 ⊕10011001(6)1011 ∨1001(7) 1。10 数码0~9、大写字母A~Z、小写字母a~z对应的ASCII码分别是多少?ASCII 码为0dh、0ah对应的是什么字符? 1。11、计算机中有一个“01100001”编码,如果把它认为是无符号数,它是10进制什么数?如果认为它是BCD码,则表示什么数?又如果它是某个ASCII码,则代表哪个字符? 1。12、简述Intel80x86系列微处理器在指令集方面的发展。 1.13、什么是DOS和ROM—BIOS? 1。14、简述PC机最低1MB主存空间的使用情况。 1.15、罗列8086CPU的8个8位和16位通用寄存器,并说明各自的作用。

汇编语言程序设计实验内容(川大微机原理实验资料和内容以及MASM使用方法)

第一部分汇编语言程序设计 实验一熟悉、使用DEBUG调试工具 一.上机目的: 1.了解并逐步熟悉汇编语言的编辑方法及特点. 2.复习8088汇编语言的段结构、常用的指令与伪指令、存储空间的分配等。 3.掌握汇编语言的编辑、汇编及连接的过程。 4.了解并逐步掌握运用DEBUG进行调试汇编语言程序。 二.实验内容: 1.运用8086汇编语言,编辑多字节非压缩型BCD数除法的简单程序,文件名取为*.ASM。 2.运用MASM﹒EXE文件进行汇编,修改发现的各种语法错误,直至正确,形成*.OBJ 文件。 3.运用LINK.EXE文件进行连接,形成*.EXE文件。 4.仔细阅读附录中的DEBUG部分,掌握各种命令的所有方法。 5.运用DEBUG。EXE文件进行调试,使用单步执行命令—T两次,观察寄存器中内容的变化,使用察看存储器数据段命令—D,观察存储器数据段内数值。 6.再使用连续执行命令—G,执行程序,检查结果是否正确,若不正确可使用DEBUG 的设置断点,单步执行等功能发现错误所在并加以改正。 程序清单: 多字节非压缩型BCD数除法(88754/6=14792) DA TA SEGMENT A D B 8,8,7,5,4 B DB 6 C DB 5DUP (0) N EQU 5 DA TA ENDS CODE SEGMENT ASSUME CS:CODE;DS:DATA;ES:DATA, START MOV AX,DA TA MOV DS,AX MOV ES,AX CLD LEA SI,A LEB DI,C MOV CX,N MOV AH,0 LP1:LODSB AAD DIV B STOSB LOOP LP1 MOV CX,N LEA DI,C

汇编语言程序设计复习.doc

知识点 第一章基础知识 (1)正负数的补码表示, 掌握计算机中数和字符的表示; eg.假设机器字长为8位,[+3]补=00000011B,[-3]补= 11111101 H 。 十六进制数0FFF8H表示的十进制正数为65528D,表示的十进制负数为-8D。 8位二进制数被看成是带符号补码整数时,其最小值是-128,最大值是 127 。 第二章80x86计算机组织 (1)中央处理机CPU的组成和80x86寄存器组,重点:专用寄存器,段寄存器 eg: IP寄存器中保存的是?代码段中的偏移地址FLAGS标志寄存器中共有几位条件状态位6位,有几位控制状态位2位,标志寄存器分为哪2类?陷阱标志,中断标志。 (2)存储单元的地址和内容每一个字节单元给以一个唯一的存储器地址,称为物理地址;一个存储单元中存放的信息称为该存储单元的内容。存储器地址的分段,(低位字节存放)低地址,(高位字节存放)高地址;实模式下逻辑地址、选择器和偏移地址;物理地址的表示段基地址加上偏移地址。 eg.如果SS=6000H,说明堆栈段起始物理地址是_____60000H___。 已知字节(00018H)=14H,字节(00017H)=20H,则字(00017H)为__1420H______。 如果(SI)=0088H,(DS)=5570H,对于物理地址为55788H的内存字单元,其内容为0235H,对于物理地址为5578AH的内存字单元,其内容为0E60H,那么执行指令LDS SI,[SI]以后,(SI)= 0235H ,(DS)= 0E60H . 第三章80x86的指令系统和寻址方式 与数据有关的寻址方式(立即寻址方式,寄存器寻址方式,直接寻址方式,寄存器间接寻址方式,寄存器相对寻址方式,基址变址寻址方式,相对基址变址寻址方式)和与转移地址有关的寻址方式(段内直接寻址,段内间接寻址,段间直接寻址,段间间接寻址)。数据传送指令(通用数据传送指令、累加器专用传送指令、输入输出指令)、算术指令(加法指令、减法指令(*加减指令对4个标志位的影响[of,cf,sf,zf])、乘法指令(*乘法指令的要求:目的操作数必须是累加器)、除法指令(*被除数在累加器中,除法指令执行完以后,商和余数在?))、逻辑指令(逻辑运算指令(*XOR,AND,OR,TEST指令及指令执行后对标志位的影响)、移位指令)、串处理指令(与REP相配合工作的MOVS、STOS、LODS 指令,与REPE/REPZ和REPNE/REPNZ联合工作的CMPS、SCAS指令)、控制转移指令(无条件转移指令、条件转移指令、循环指令、子程序调用指令、中断)。eg.【习题3.8】假定(DS)=2000H,(ES)=2100H,(SS)=1500H,(SI)=00A0H,

汇编语言程序设计的实验环境及上机步骤

第1章汇编语言程序设计实验 1.1 汇编语言程序设计的实验环境及上机步骤 1.1.1 实验环境 汇编语言程序设计的实验环境如下。 1.硬件环境 微型计算机(Intel x86系列 CPU)1台。 2.软件环境 ·Windows 98/XP/Me/2000操作系统; ·任意一种文本编辑器(EDIT、NOTEPAD(记事本)、UltraEDIT等); ·汇编程序(MASM.EXE或TASM.EXE); ·链接程序(LINK.EXE或TLINK.EXE); ·调试程序(DEBUG.EXE或TD.EXE)。 本书建议文本编辑器使用EDIT或NOTEPAD,汇编程序使用MASM.EXE,链接程序使用LINK.EXE,调试程序使用TD.EXE。 1.1.2 上机步骤 汇编语言程序设计的实验2和实验3仅使用TD.EXE,关于TD.EXE的使用方法请参见附录B。下面介绍的上机实验步骤适用于除实验2和实验3的所有实验(包括硬件接口部分的全部实验)。 1.确定源程序的存放目录 建议源程序存放的目录名为ASM,并放在C盘或D盘的根目录下。如果没有创建过此目录,请用如下方法创建。 通过Windows的资源管理器找到C盘的根目录,在C盘的根目录窗口中单击右键,弹出的菜单中选择“新建”→“文件夹”,并把新建的文件夹命名为ASM。 请把MASM5文件夹下的所有文件及TD.EXE都复制到此目录中。 2.建立ASM源程序 建立*.ASM源程序可以使用记事本文本编辑器。注意:保存时扩展名必须ASM。设建立的源文件为HELLO.ASM 3.用MASM.EXE汇编源程序产生OBJ目标文件 源文件HELLO.ASM建立后,要使用汇编程序对源程序文件汇编,汇编后产生二进制的目标文件(.OBJ文件)。具体操作如下: 方法一:在Windows中操作 用资源管理器打开源程序目录C:\ASM,把HELLO.ASM拖到MASM.EXE程序图标上。 方法二:在DOS命令提示符窗口中操作 选择“开始”→“程序”→“附件”→“命令提示符”,打开DOS命令提示符窗口,然后用CD命令转到源程序目录下,接着输入MASM命令: I:>C:<回车> C:>CD\ASM<回车> C:\ASM>MASM HELL0.ASM<回车> 操作时的屏幕显示如图1所示。

汇编教程汇编语言编程实例

汇编语言编程实例一这一章,我们要把我们已学的知识集合起来。具体来讲,我们来写一个使用ODBC APIs的程序.为简单起见,这个程序中我使用Microsoft的Access数据库(Microso ft Access 97) . 注意:如果你使用的windows.inc 是1.18及其以下版本,在开始编译之前要修改其中的一个小bug.在windows.inc中查找 "SQL_NULL_HANDLE",将得到下面这行: SQL_NULL_HANDLE equ 0L 将0后面的"L"删除,象这样: SQL_NULL_HANDLE equ 0 这个程序是一个基于对话框的程序,有一个简单的菜单.当用户选择"connect"时,它将试图连接test.mdb数据库,如果连接成功,将显示由ODBC驱动程序返回的完整连接字符串.接下来,用户可选择"View All Records"命令,程序会使用listview control来显示数据库中的所有数据.用户还可以选择"Query"命令来查询特定的记录.例子程序将会显示一个小对话框提示用户输入想找的人名.当用户按下OK钮或回车键,程序将执行一个查询来查找符合条件的记录.当用户完成对数据库的操作时,可以选择"disconnect"命令与数据库断开连接. 现在看一下源程序: .386 .model flat,stdcall include \masm32\include\windows.inc include \masm32\include\kernel32.inc include \masm32\include\odbc32.inc include \masm32\include\comctl32.inc include \masm32\include\user32.inc includelib \masm32\lib\odbc32.lib includelib \masm32\lib\comctl32.lib includelib \masm32\lib\kernel32.lib includelib \masm32\lib\user32.lib IDD_MAINDLG equ 101 IDR_MAINMENU equ 102 IDC_DATALIST equ 1000 IDM_CONNECT equ 40001 IDM_DISCONNECT equ 40002 IDM_QUERY equ 40003 IDC_NAME equ 1000 IDC_OK equ 1001 IDC_CANCEL equ 1002 IDM_CUSTOMQUERY equ 40004 IDD_QUERYDLG equ 102 DlgProc proto hDlg:DWORD, uMsg:DWORD, wParam:DWORD, lParam:DWORD

8086汇编语言程序设计实验指导书.

汇编语言上机实验指导书 一、概述 上机实验总学时为16学时,其中综合性实验为2学时。实验共有6项暂定为8次,每次2学时。 1.实验辅导的主要内容 实验辅导的内容包括每个实验的实验目的;实验内容;对实验的算法及实验方法的必要说明;实验准备;实验步骤;实验报告要求;实验程序及参考框图。开始的实验介绍较细,后面的实验简要介绍。 2.实验的软硬件要求 关于汇编语言程序设计的硬件要求不高,有IBM-PC/XT即可,但应有彩色显示器以便进行图形实验。软件方面应有MASM.EXE5.0版(包括LINK.EXE),与MS-DOS版本配套的DEBUG程序和EDIT.EXE编辑软件(其它编辑软件也可以)。 3.加强实践能力的培养 实验目的不光是为了验证书本理论,更重要的是对实践能力的培养。其中包括: 实际调试程序的能力,例如修改程序参数的能力,查看结果的能力,设置断点调试运行的能力等; 开发汇编语言应用程序的能力,例如应用有关汇编软件的能力,进行系统调用和BIOS功能调用的能力,进行模块程序设计的能力等。 对某一问题用不同的程序实现的能力,例如我们为每个实验提供了参考程序(或程序段),目的是让每个实验者参照样板程序将实验成功地实现,在掌握其方法后,自己改变程序或自己编制程序加以实现。 实验一汇编语言运行环境及方法、简单程序设计(2学时、验证性) 1.实验目的: (1) 熟悉汇编语言运行环境和方法 (2)了解如何使用汇编语言编制程序 (3) 熟悉DEBUG有关命令的使用方法 (4) 利用DEBUG掌握有关指令的功能 (5) 利用DEBUG运行简单的程序段 2.实验内容 (1)学会输入、编辑汇编语言程序 (2)学会对汇编语言程序进行汇编、连接和运行 (3)进入和退出DEBUG程序 (4)学会DEBUG中的D命令、E命令、R命令、T命令、A命令、G命令等的使用。对于U命令、N命令、W命令等,也应试一下。 3.实验准备 (1)仔细阅读有关汇编语言环境的内容,事先准备好使用的例子。 (2)准备好源程序清单、设计好调试步骤、测试方法、对运行结果的分析。 (3) 编写一个程序:比较2个字符串所含的字符是否相同。若相同则显示’Match.’,否则显示’No match!’;(1)仔细阅读有关DEBUG 命令的内容,对有关命令,都要事先准备好使用的例子。 4.实验步骤 (1)在DOS提示符下,进入MASM目录。 (2)在MASM目录下启动EDIT编辑程序,输入源程序,并对其进行汇编、连接和运行。 ①调用edit输入、编辑源程序并保存在指定的目录中;例:edit abc.asm ②用汇编程序masm对源程序汇编产生目标文件obj。例:masm abc 不断修改错误,直至汇编通过为止。 ③用连接程序link产生执行文件exe.例:link abc ④执行程序 可直接从DOS执行程序,即在DOS环境中,输入文件名即可。 (3)详细记录每一步所用的命令,以及查看结果的方法和具体结果。 5.实验报告要求 (1)源程序清单。 (2) 如何启动和退出EDIT程序。 (3) 如何对源程序进行汇编及编辑。

相关文档
相关文档 最新文档