文档库 最新最全的文档下载
当前位置:文档库 › 汇编语言课后习题解答

汇编语言课后习题解答

汇编语言课后习题解答
汇编语言课后习题解答

第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

第2章汇编语言源程序格式

1.请解释变量和标号的含义,两者有何区别?

答:标号代表一条指令所在单元的地址,在代码段中定义;变量是存放数据的存储单元的地址符号名,在除代码段以外的其他段中定义。变量和标号的主要区别在于变量指的是数据,而标号则对应的是指令。

2. 变量和标号有什么属性?答:都具有三种属性:段属性、偏移属性和类型属性

3. 伪指令语句与指令语句的区别是什么?伪指令有什么用途?

答:伪指令并不像指令语句那样在程序运行

期间由计算机自动执行,而是在汇编程

序对源程序汇编期间由汇编程序处理的

操作。伪指令可以完成如处理器选择、

定义程序模块、数据定义、存储区分配、指示程序开始和结束等功能。

4. 数值返回运算符有哪几种?简述LENGTH和SIZE的区别。

答:⑴数值返回运算符包括:SEG(取段地址)、OFFSET(取偏移地址)、TYPE(取

类型值)、LENGTH(取长度)、SIZE(取

总字节数)。⑵对于变量中使用DUP的

情况,LENGTH回送分配给该变量的单

元数,对于其他情况则送1;而SIZE会

送分配给变量的总字节数,也就是

LENGTH和TYPE的乘积。

5. 画图说明下列伪指令所定义的数据在内存中的存放形式。 (1) ARR1 DB 6,34H,-7 (2) ARR2 DW 3C5DH,1,?

(3) ARR3 DB 2 DUP(1,2,DUP(2,5),3) (4) ARR4 DB ‘HELLO ’ (5) ARR% DB ‘1234’ 答:(1) 见题图2.1 06H 34H F9H

ARR1

题图2.1

(2) 见题图2.2

00H ARR2

01H 3CH 5DH - -- -

题图2.2

(3) 见题图2.3

02H ARR3

05H 02H 01H

05H 03H 02H 05H 02H 01H 05H 03H

题图2.3

(4) 见题图2.4

4CH

ARR4

4CH 45H 48H 4FH

题图2.4

(5) 题图2.5

34H

ARR5

33H 32H 31H

题图2.5

6. 写出下列变量定义语句。

(1) 为缓冲区BUF1预留20B 的存储空间。

(2) 将字符串‘ABCD’,‘1234’存放于BUF2存储区中。

答: (1) BUF1 DB 20 DUP(?) (2) BUF2 DB ‘ABCD ’ DB ‘1234’ 7. 符号定义语句如下:

BUF DB 2,3,4,5,‘345’ EBUF DB 8

LT DB EQU EBUF-BUF 问LT 的值是多少? 答:LT 的值为7

8. 假设程序中的数据定义如下: A DW ?

B DB 16 DUP(?)

C D

D ? T EQU $-A

问T 的值是多少?它表示什么意义? 答:T 的值是22;它表示从变量A 到T 之间分配的存储空间(字节)数目。

9. 如何规定一个程序执行的开始位置?主

程序执行结束应该如何返回DOS?源程序在何处停止汇编过程?

答:程序开始位置:END伪指令后的标号所对应的地址;应用程序开始伪指令.STARTUP处。

返回DOS:RET指令结合PUSH DS等指令;用DOS功能调用的第4CH号中断;.EXIT伪指令。

END伪指令处停止汇编过程。

10.EQU伪指令与“=”伪指令有何区别?答:在同一程序中,“=”伪指令可对一个符号重复定义

11.指出下列伪指令表达方式的错误,并改

正之。

(1) DATA SEG

(2) SEGMENT ‘CODE’

(3) MYDATA SEGMENT

DATA ENDS

(4) MAIN PROC FAR

END MAIN

MAIN ENDP

答:(1) SEG改为SEGMENT

(2) 没有段名

(3) DATA ENDS改为MYDA TA

ENDS

(4) END MAIN删除

第3章8086/8088寻址方式及指令系统

1.什么是寻址方式,8086/8088微处理器有几种寻址方式,各类寻址方式的基本特征是什么?

答:寻址方式就是寻找指令中操作数的方式,或寻找指令转移目的地址的方式。

8086/8088微处理器的寻址方式分为数据寻址方式和程序转移寻址方式。数据寻址方式主要包括立即数寻址方式、寄存器寻址方式、直接寻址方式、寄存器间接寻址方式、寄存器相对寻址方式、基址变址寻址方式和相对基址变址寻址方式;程序转移寻址方式主要包括段内直接寻址、段内间接寻址、段间直接寻址、段间间接寻址。

立即数寻址:操作数就在指令中,作为指令的一部分,跟在操作码后存放在代码段。

寄存器寻址:操作数在寄存器中,指令中指定寄存器号。

直接寻址方式:操作数在存储器中,指令直接包含操作数的有效地址EA。

寄存器间接寻址:操作数在存储器中,操作数的有效地址在SI,DI,BX,BP这4个寄存器之一中。

寄存器相对寻址:操作数在存储器中,操作数的有效地址是一个基址寄存器(BX,BP)或变址寄存器(SI,DI)的内容加上8位或16位的位移之和。

基址变址寻址:操作数在存储器中,操作数的有效地址是一个基址寄存器(BX,BP)加上变址寄存器(SI,DI)的内容。

相对基址变址寻址:操作数在存储器中,操作数的有效地址是一个基址寄存器(BX,BP)和变址寄存器(SI,DI)的内容加上8位或16位的位移之和。

段内直接寻址:转向的有效地址是当前IP寄存器的内容和指令中指定的8位或16位位移量之和。

段内间接寻址:转向的有效地址是一个寄存器或是一个存储单元的内容。

段间直接寻址:在指令中直接提供了转向段地址和偏移地址。

段间间接寻址:用存储器里的两个相继字的内容来取代IP和CS寄存器中的原始内容,以达到段间转移的目的。

2. 假定(DS)=1000H,(SI)=007FH,(BX)=0040H,(BP)=0016H,变量TABLE的偏移地址为0100H,试指出下列指令的源操作数字段的寻址方式,它的有效地址(EA)和物理地址(PA)分别是多少?

(1) MOV AX,[1234H] (2) MOV AX,TABLE

(3) MOV AX,[BX+100H] (4) MOV AX,TABLE[BP][SI]

答:(1) 直接寻址,EA=1234H,PA=11234H (2)直接寻址,EA=0100H,PA=10100H

(3) 寄存器相对寻址,EA=0140H,PA=10140H(4)相对基址变址寻址,EA=0195H,PA=10195H

3. 若TABLE为数据段0032单元的符号名,

其中存放的内容为1234H,试问下列两

条指令有什么区别?执行完指令后,AX

寄存器的内容是什么?

MOV AX,TABLE

LEA AX,TABLE

答:第一条指令是取0032单元的内容,执行完后AX的内容是1234H

第二条指令是取TABLE的偏移地址,执

行完后AX的内容为0032H

4. 指出下列指令的错误。

(1) MOV CX,DL

(2) MOV IP,AX

(3) MOV ES,1234H

(4) MOV ES,DS

(5) MOV AL,300H

(6) MOV [SP],AX

(7) MOV AX,BX+DI

(8) MOV 20H,AH

答:(1) 两操作数长度不一致

(2) 目的操作数不能为IP

(3) 立即数不能直接送段寄存器

(4) 两个段寄存器之间不能直接进行

数据传送

(5) 两操作数长度不一致

(6) SP不能用作间址寄存器

(7) BX+DI改为[BX][DI]或[BX+DI]

(8) 目的操作数不能为立即数

5. 指出下列指令的错误。

(1) POP CS

(2) SUB [SI],[DI]

(3) PUSH AH

(4) ADC AX,DS

(5) XCHG [SI],30H

(6) OUT DX,AH

(7) IN AL,3FCH

(8) MUL 5

答:(1) POP指令不允许使用CS

(2) 两操作数不能同时是存储器寻址

方式

(3) 堆栈的操作必须以字为单位 (4) 段寄存器不允许直接参加运算

(5) XCHG指令的操作数不允许是立即

(6) OUT指令只能用AL做源操作数

(7) 端口号大于255,必须将其放到DX

(8) MUL指令源操作数不允许是立即

6. 请分别用一条汇编语言指令完成如下功

能。

(1) 把BX寄存器和DX寄存器的内容

相加,结果存入DX寄存器。

(2) 用寄存器BX和SI的基址变址寻

址方式把存储器的一个字节与AL

寄存器的内容相加,并把结果送到

AL中。

(3) 用BX和位移量0B2H的寄存器相

对寻址方式把存储器中的一个字

和CX寄存器的内容相加,并把结

果送回存储器中。

(4) 把数0A0H与AL寄存器的内容相

加,并把结果送回AL中。

答:(1)ADD DX,BX

(2)ADD AL,[BX+SI]

(3)ADD [BX+0B2H],CX

(4)ADD AL,0A0H

7. 求出以下各十六进制数与十六进制数

58B0之和,并根据结果设置标志位SF、ZF、CF和OF的值。

(1) 1234H

(2) 5678H

(3) 0AF50H

(4) 9B7EH

答:(1)和为6AE4H,SF=0,ZF=0,CF=0,OF=0

(2)和为0AF28H,SF=1, ZF=0, CF=0,

OF=1

(3)和为0800H, SF=0, ZF=0, CF=1,

OF=0

(4)和为0F42EH, SF=1, ZF=0, CF=0,

OF=0

8. 执行指令ADD AL,72H前,(AL)=8EH,

标志寄存器的状态标志OF、SF、ZF、

AF、PF和CF全为0,指出该指令执行

后标志寄存器的值。

答:指令执行后,AL的内容为0000000H,且有进位,标志寄存器中各标志位的值

为:OF=0,SF=0,ZF=1,AF=1,PF=1,CF=1

9. 已知程序段如下:

MOV AX,1234H

MOV CL,4

ROL AX,CL

DEC AX

MOV CX,4

MUL CX

试问:1、每条指令执行完后,AX的内

容是什么?

2、每条指令执行完后,CF、SF和ZF的值是什么?

3、程序执行完后,AX和DX的内容是什么?

答:(1)(2)

MOV AX,1234H ; (AX)=1234H,各标志位不变

MOV CL,4 ; (AX)=1234H,各标志位不变

ROL AX,CL ; (AX)=2341H,CF=1,其它标志位不变

DEC AX ; (AX)=2340H,CF不变,SF=0,ZF=0

MOV CX,4 ; (AX)=2340H,各标志位不变

MUL CX ; (AX)=8D00H,CF=0,ZF=0,SF=0

(3)程序执行完后,

(AX)=8D00H,(DX)=0000H

10. 编程序段,将AL、BL、CL、DL相加,结果存在DX中。

答:MOV AH,0

ADD AL,BL

ADC AH,0

ADD AL,CL

ADC AH,0

ADD AL,DL

ADC AH,0

MOV DX,AX

11. 编程序段,从AX中减去DI,SI和BP 中的数据,结果送BX。

答:SUB AX,DI

SUB AX,SI

SUB AX,BP

MOV BX,AX

12. 假设(BX)=0E3H,变量V ALUE中存放的内容为79H,确定下列各指令单独执行后的结果。

(1) OR BX,VALUE

(2) AND BX,VALUE

(3) XOR BX,OFFH

(4) AND BX,01H

(5) TEST BX,05H

(6) XOR BX,VALUE

答: (1) (BX)=0FBH

(2) (BX)=61H

(3) (BX)=1CH

(4) (BX)=01H

(5) (BX)=0E3H

(6) (BX)=9AH

13. 已知数据段500H~600H处存放了一个字符串,说明下列程序段执行后的结果。

MOV SI,600H

MOV DI,601H

MOV AX,DS

MOV ES,AX

MOV CX,256

STD

REP MOVSB

答:将数据段501H~600H中存储的字符串移到数据段502~601H中

14. 说明下列程序段的功能。

CLD

MOV AX,0FEFH

MOV CX,5

MOV BX,3000H

MOV ES,BX

MOV DI,2000H

REP STOSW

答:将附加段的32000H开始的连续5个字初始化为0FEFH

15. 判断下列程序段跳转的条件。

(1) XOR AX,1E1EH

JE EQUAL

(2) TEST AL,10000001B

JNZ THERE

(3) CMP CX,64H

JB THERE

答:(1) AX中的值为1E1EH时会跳转(2) AL的最低和最高位至少有一位为1时发生跳转

(3) CX中的值小于64H时发生跳转16. 选取正确指令,完成以下任务。

(1) 右移DI三位,并将0移入最左一位。

(2) AL内容左移一位,0移入最后一位。

(3) DX寄存器右移一位,并且使结果的符号位与原符号位相同。

答:(1) MOV CL,3

SHR DI,CL

(2) SHL AL,1(3) SAR DX,1

17. 假设AX和SI存放的是有符号数,DX

和DI存放的是无符号数,请用比较指

令和条件转移指令实现以下判断。

(1) 若DX>DI,转到ABOVE执行(2) 若AX>SI,转到GREATER执行。

(3) 若CX=0,转到ZERO执行(4) 若AX-SI产生溢出,转到OVERFLOW执行。

(5) 若SI≤AX,转到LESS_EQ执行。

(6) 若DI≤DX,转到BELOW_EQ执行。答:(1) CMP DX,DI

JA ABOVE

(2) CMP AX,SI

JG GREATER

(3) CMP CX,0

JE ZERO

(4)CMP AX,SI

JO OVERFLOW

(5) CMP AX,SI

JGE LESS_EQ

(6) CMP DX,DI

JAE BELOW_EQ

18. 有一个首地址为ARRAY的20个字数组,说明下列程序段的功能。 MOV CX,20

MOV AX,0

MOV SI,AX

SUM_LOOP: ADD AX,ARRAY[SI]

ADD SI,2

LOOP SUM_LOOP

MOV TOTAL,AX

答:将首地址为ARRAY的20个字数组元素求和,将结果存放到TOTAL单元

22. 已知内存中起始地址为BLOCK的数据

块(字节数为COUNT)的字节数据有

正有负。试编写一个程序,将其中的正、

负分开,分别送至同一段中的两个缓冲

区,设正、负缓冲区的首地址分别为

PLUS和MINUS。

答: DATA SEGMENT

BLOCK DB 16 DUP(?)

PLUS DB 16 DUP(?)

MINUS DB 16 DUP(?)

DATA ENDS

CODE SEGMENT

ASSUME CS:CODE,DS:DATA

START:MOV AX,DATA

MOV DS,AX

MOV SI,OFFSET BLOCK

MOV DI,OFFSET PLUS

MOV BX,OFFSET MINUS

MOV CX,COUNT

NEXT:MOV AL,[SI]

TEST AL,80H

JNZ MD

MOV [DI],AL

INC DI

JMP AGAIN

MD: MOV [BX],AL

INC BX

AGAIN: INC SI

LOOP NEXT

MOV AH,4CH

INT 21H

CODE ENDS

END START

19. 按照下列要求,编写相应的程序段。

(1) 已知字符串STRING包含有32KB 内容,将其中的“$”符号替换成空格。

(2) 有一个100个字节元素的数组,其

首地址为ARRAY,将每个元素减

1(不考虑溢出)存于原处。 (3) 统计以“$”结尾的字符串STRING 的字符个数

(4) 假设从B800H:0开始存放有16个

16位无符号数,编程求它们的和,

并把32位的和保存在DX、AX中。

答:(1)

MOV SI,0

MOV CX,8000H

AGAIN:CMP STRING[SI],’$’ JNZ NEXT

MOV STRING[SI],20H NEXT:INC SI

LOOP AGAIN

(2)

MOV SI,0

MOV CX,100

AGAIN:DEC ARRAY[SI]

INC SI

LOOP AGAIN

(3)

XOR SI,SI

COMP:CMP STRING[SI],’$’ JE OVER

INC SI

JMP COMP

OVER:RET

(4)

MOV AX,0B800H

MOV DS,AX

XOR SI,SI

XOR DX,DX

MOV CX,0FH

MOV AX,[SI]

AGAIN:INC SI

INC SI

ADD AX,[SI]

JNC NEXT

INC DX

NEXT:LOOP AGAIN

RET

20. 编写程序,把ARRAY1和ARRAY2中20个字节数分别相加,结果放到TABLE中。

(1) 假定数据为无符号数,如果结果大于255则结果为255。

(2) 假定结果为带符号数,如果有溢出则保存结果为0。

答:(1)

DATA SEGMENT

ARRAY1 DB 20 DUP(?)

ARRAY2 DB 20 DUP(?)

TABLE DB 20 DUP(?)

DATA ENDS

CODE SEGMENT

ASSUME CS:CODE,DS:DATA START:MOV AX,DATA

MOV DS,AX

MOV CX,20

MOV SI,0

AGAIN:MOV AL,ARRAY1[SI]

ADD AL,ARRAY2[SI]

JC LABEL1

MOV TABLE[SI],AL

JMP LABEL2

LABEL1:MOV TABLE[SI],255

LABEL2:INC SI

LOOP AGAIN

MOV AH,4CH

INT 21H

CODE ENDS

END START

(2)

DATA SEGMENT

ARRAY1 DB 20 DUP(?)

ARRAY2 DB 20 DUP(?)

TABLE DB 20 DUP(?)

DATA ENDS

CODE SEGMENT

ASSUME CS:CODE,DS:DATA START:MOV AX,DATA

MOV DS,AX

MOV CX,20

MOV SI,0

AGAIN:MOV AL,ARRAY1[SI]

ADD AL,ARRAY2[SI]

JO LABEL1

MOV TABLE[SI],AL

JMP LABEL2

LABEL1:MOV TABLE[SI],0

LABEL2:INC SI

LOOP AGAIN

MOV AH,4CH

INT 21H

CODE ENDS

END START

21. 字符串ATR1保存着100个字节的ASCII码,试编写一个程序统计该字符串中空格(20H)

的个数。

答: DATA SEGMENT

ATR1 DB 100 DUP(?)

DATA ENDS

CODE SEGMENT

ASSUME CS:CODE,DS:DATA

START:MOV AX,DATA

MOV DS,AX

MOV CX,100

XOR DI,DI

XOR SI,SI

COMP:CMP ATR1[SI],20H

INC SI

JNE NEXT

INC DI

NEXT:LOOP COMP

MOV AH,4CH

INT 21H

CODE ENDS

END START

第4章顺序、分支与循环程序设计

1.试编写一个程序实现将从键盘输入的小写字母用大写字母形式显示出来。

答: DATA SEGMENT

STRMESSAGE DB “请输入小写字符”,0DH,0AH,’$’

DATA ENDS

CODE SEGMENT

ASSUME CS:CODE,DS:DATA

START:MOV AX,DATA

MOV DS,AX

MOV DX,OFFSET STRMESSAGE

MOV AH,9H

INT 21H

MOV AH,1

INT 21H

MOV DL,AL

SUB DL,20H

MOV AH,2

EXIT:MOV AH,4CH

INT 21H

CODE ENDS

END START

2.在内存BUFFER单元中定义有10个16位数,试寻找其中的最大值及最小值,并放在指定的存储单元MAX和MIN中。

答: DATA SEGMENT

BUFFER DW 10 DUP(?)

MIN DW ?

MAX DW ?

DATA ENDS

CODE SEGMENT

ASSUME CS:CODE,DS:DATA

START:MOV AX,DATA

MOV DS,AX

MOV BX,OFFSET BUFFER

MOV AX,[BX]

MOV DX,[BX]

MOV SI,0

MOV CX,10

MM:MOV DI,[BX+SI]

CMP AX,DI

JB T1

JMP T2

T1:CMP DX,DI

JB T11

JMP T21

T11:MOV DX,DI

T21:JMP ENT

T2: MOV AX,DI

ENT:ADD SI,2

LOOP MM

MOV MAX,DX

MOV MIN,AX

MOV AH,4CH

INT 21H

CODE ENDS

END START

3.统计字型变量DATBUF中有多少位0,多少位1,并分别记入COUNT0和COUNT1中。答: DATA SEGMENT

DATBUF DW 1234H

COUNT0 DB ?

COUNT1 DB ?

CODE SEGMENT

ASSUME CS:CODE,DS:DATA

START:MOV AX,DATA

MOV DS,AX

MOV BX,DATBUF

AGAIN:CMP BX,0

JE EXIT

SHL BX,1

JNC ZERO

INC COUNT1

JMP AGAIN

ZERO:INC COUNT0

JMP AGAIN

EXIT:MOV AH,4CH

INT 21H

CODE ENDS

END START

4.在BUFFER开始的单元中存放着一个字符串,请判断该字符串中是否存在数字,如有则将X单元置1,否则置0。

答: DATA SEGMENT

BUFFER DB ‘JAVA2COMPUTER’

N=$-BUFFER

X DB ?

DATA ENDS

CODE SEGMENT

ASSUME CS:CODE,DS:DATA

START:MOV AX,DATA

MOV DS,AX

CLD

MOV CX,N

XOR SI,SI

AGAIN:CMP BUFFER[SI],39H

JA NEXT

CMP AL,30H

JB NEXT

MOV X,1

JMP EXIT

NEXT:INC SI

LOOP AGAIN

MOV X,0

EXIT:MOV AH,4CH

INT 21H

CODE ENDS

5.设在变量单元A1、A2、A3、A4中存放4个数,试编程实现将最大数保留,其余3个数清零的功能。

答: DATA SEGMENT

A1 DB 3

A2 DB 7

A3 DB 9

A4 DB 8

DATA ENDS

CODE SEGMENT

ASSUME CS:CODE,DS:DATA

START:MOV AX,DATA

MOV DS,AX

MOV SI,0

MOV CX,3

MOV AL,A1[SI]

MOV DI,0

NEXT:INC SI

CMP AL,A1[SI]

JNB NEXT1

MOV AL,A1[SI]

MOV A1[DI],0

MOV DI,SI

JMP NEXT2

NEXT1:MOV A1[SI],0

NEXT2:LOOP NEXT

MOV AH,4CH

INT 21H

CODE ENDS

END START

6.已定义了两个整数变量A和B,试编写程序完成下列功能。

(1) 若两个数中有一个是奇数,则将奇数存入A中,偶数存入B中

(2) 若两个数均为奇数,则将两数均加1后存回原变量。

(3) 若两个数均为偶数,则两个变量均不改变。

答: DATA SEGMENT

A D

B 13H

B DB 24H

DATA ENDS

CODE SEGMENT

ASSUME CS:CODE,DS:DATA

START:MOV AX,DATA

MOV DS,AX

MOV AL,A

MOV BL,B

TEST AL,01H

JZ SAME

TEST BL,01H

JZ DONE

XCHG BL,A

MOV B,BL

JMP DONE

SAME:TEST BL,01H

JZ DONE

INC A

INC B

DONE:MOV AH,4CH

INT 21H

CODE ENDS

END START

7.试编制一个程序,求出首地址为DATA的100D字数组中的最小偶数,并把它存入AX 中。

答: MYDATA SEGMENT

DATA DW 100 DUP(?)

NUM DB 100

MYDATA ENDS

CODE SEGMENT

ASSUME CS:CODE,DS:MYDATA

START:MOV AX,DATA

MOV DS,AX

MOV CX,NUM

MOV SI,0

MOV AX,32766

AGAIN:TEST DATA[SI],1

JNZ NEXT

COMPARE:CMP AX,DATA[SI]

JLE NEXT

MOV AX,DATA[SI]

NEXT:ADD SI,2

LOOP AGAIN

EXIT:MOV AH,4CH

INT 21H

CODE ENDS

END START

8.已知从符号地址M开始的内存单元中存放有15个16位带符号数,试编制一个程序,将正数依次存放在以符号地址P开始的内存单元中,再将负数依次存放到以符号地址N开始的内存单元中,并将整数和负数的个数显示出来。

答: DATA SEGMENT

P DW 15 DUP(?)

N DW 15 DUP(?)

DATA ENDS

CODE SEGMENT

ASSUME CS:CODE,DS:DATA

START: MOV AX,DATA

MOV DS,AX

MOV CX,15

MOV SI,0

MOV BX,0

MOV DI,0

AGAIN:MOV AX,M[SI]

CMP AX,0

JL STEP1

MOV P[BX],AX

INC BX

JMP NEXT

STEP1:MOV N[DI],AX

INC DI

NEXT:INC SI

LOOP AGAIN

;输出正负数据个数子程序

MOV AH,4CH

INT 21H

CODE ENDS

END START

9.已知数组A1中包含有15个互不相等的整数,数组A2中含有20个互不相等的整数,试编制一个程序,把既在A1又在A2中出现的整数存放在以符号地址为E开始的内存单元中。

答: DATA SEGMENT

A1 DW 15 DUP(?)

A2 DW 20 DUP(?)

E DW 15 DUP(?)

DATA ENDS

CODE SEGMENT

ASSUME CS:CODE,DS:DATA

START:MOV AX,DATA

MOV DS,AX

MOV CX,15

MOV SI,0

MOV DI,0

MOV BX,0

AGAIN:MOV DX,CX

MOV DI,0

MOV CX,20

COMPARE:CMP AX,A2[DI]

JE MATCH

ADD DI,2

LOOP COMPARE

JMP COMMON

MATCH:MOV E[BX],AX

ADD BX,2

COMMON:ADD SI,2

MOV CX,DX

LOOP AGAIN

MOV AH,4CH

INT 21H

CODE ENDS

END START

10.已知有N个整数a1,a2,…,an已存放在从A开始的内存单元中,试编制一个程序将其中的

负数删去,而把留下的正数依次重新存放在从A开始的内存单元中。

分析:如果当前位置元素小于0,则将当前位置后面第一个大于0的元素放到当前位置,同时将这一位置值置为-1;当该位置后面再没有大于0的元素时,依次将后面各位置元素清0即可(假设初始时所有元素都不等于0)

答: DATA SEGMENT

A DW a1,a2,…,an

N DB ($-A)/2

DATA ENDS

CODE SEGMENT

ASSUME CS:CODE,DS:DATA

START:MOV AX,DATA

MOV DS,AX

MOV SI,0

MOV DI,2

MOV CX,N

AGAIN:MOV DX,CX

MOV AX,A[SI]

CMP AX,0

JL LOOP1

JMP COMMON

LOOP1:DEC CX

NEXT:MOV AX,A[DI]

COM AX,0

JG NEXT2

ADD DI,2

LOOP NEXT

JMP EXIT ;后面已经没有正数,重新排序完毕 NEXT2:MOV A[SI],AX

MOV A[DI],-1

COMMON:ADD SI,2

MOV DI,SI

ADD DI,2

MOV CX,DX

LOOP AGAIN

EXIT:MOV CX,N

SHR SI

SUB CX,SI

SHL SI

NEXT3:MOV A[SI],0

ADD SI,2

LOOP NEXT3

MOV AH,4CH

INT 21H

CODE ENDS

END START

第5章子程序及宏指令设计

1.调用子程序指令的功能是什么?其操作过程包含哪几个步骤?

答:功能:保存返回地址和调用子程序步骤:(1)返回地址入栈(2)用子程序名所代表的子程序入口地址修改IP指令指针寄存器,如果子程序属性是FAR型的,属于跨段调用,还要修改CS寄存器的值(3)根据IP(和CS)值转到子程序执行

2.试编制一个多精度数求补的子程序,为提高程序的通用性,要求调用子程序时把多精度数的首地址放在SI中(低字节放低位、高字节放高位),多精度数字节数放在CL中。答: MULNEG PROC NEAR

MOV DI,SI ;保留首地址

MOV CH,00H ;字节数放CL中,将CH清零

PUSH CX

L1:NOT [SI] ;多精度数各字节取反

INC SI

LOOP L1

POP CX

MOV SI,DI

STC ;将CF置为1,结合ADC语句,实现加1操作

L2:ADC BYTE PTR[SI],0

INC SI

LOOP L2

RET

MULNEG ENDP

3.试编制两个长度不同的多精度整数求和子程序,为提高程序的通用性,要求调用子程序

时把两个多精度数的首地址分别放在SI、DI中(低字节放低位、高字节放高位),多精度数字节数分别放在CL、CH中。

答:求得的和放在较长的多精度整数的存储区

ADDITION PROC NEAR

CLC ;ZF清零

CMP CL,CH

JGE CA ;第一个多精度数较长

CR: MOV AL,[SI]

ADC [DI],AL

INC DI

INC SI

DEC CL

JNZ CR

JMP EXIT

CA: MOV AL,[DI]

ADC [SI],AL

INC DI

INC SI

DEC CH

JNZ CA

EXIT: RET

ADDITION ENDP

4.试编写一个子程序用以统计字数组中零元素的个数,参数采用堆栈传递,入口参数为:数组存储区首地址,数组长度N。出口参数为零元素的个数,并写出CALL指令执行前后,以及RET指令执行前后,堆栈情况。

答: SSTACK SEGMENT

DW 16 DUP(?)

TOS LABEL WORD

SSTACK ENDS

DATA SEGMENT

ARRAY DW 2,63,5,0,-4,-16,0,9

N DW ($-ARRAY)/2

COUNT DW 0

DATA ENDS

CODE SEGMENT

ASSUME CS:CODE,DS:DATA,SS:SSTACK

START:MOV AX,DATA

MOV DS,AX

MOV AX,SSTACK

MOV SS,AX

MOV SP,OFFSET TOS

LEA BX,ARRAY

PUSH BX ;压入数组首地址

LEA BX,N

PUSH BX ;压入元素个数地址 LEA BX,COUNT

PUSH BX ;压入零元素数目地址 CALL COMPUTE MOV AH,4CH INT 21H

COMPUTE PROC FAR PUSH BP MOV BP,SP PUSH CX PUSH SI PUSH DI

MOV SI,[BP+10];得到数组首址 MOV DI,[BP+8];元素个数地址 MOV CX,[DI] ;得到元素个数 MOV DI,[BP+6] ;零元素数目地址 NEXT:CMP WORD PTR[SI],0 JNE COMMON

INC WORD PTR[DI] COMMON:ADD SI ,2 LOOP NEXT POP DI POP SI POP CX POP BP RET 6 COMPUTE ENDP CODE ENDS END START

CALL 指令执行前堆栈情况如题图5.1;CALL 指令执行后及RET 指令执行前堆栈情况如题图5.2;RET 指令执行后堆栈情况如题图5.3。

ARRAY 首址

SS →N 的地址COUNT 地址┇

0SP →

PSP 段地址

CALL 指令执行前堆栈

COUNT 首址SS →

CS 值IP 值┇

N 的地址SP →

ARRAY 首址

CALL 指令执行后及RET 执行前堆栈0PSP 段地址

ARRAY 首址

SS →N 的地址COUNT 地址┇

0SP →

PSP 段地址

RET 执行后状态

题图5.1 题图5.2 题图5.3

5.试编程计算两个数X 和Y 最小公倍数的子程序。 答:设AL 中存储X ,BL 中存储Y

LCM PROC NEAR

CMP AL,BL

JA NEXT

XCHG AL,BL ;保证AL中存放较大数

NEXT:MOV DL,AL ;保留AL值

MOV DH,BL ;保留BL值

LOOP1:AND AH,00H

DIV BL ;求AL MOD BL,值(余数)放AH

CMP AH,0

JE OVER

MOV AL,BL

MOV BL,AH

JMP LOOP1

OVER:MOV AL,DL

MUL DH ;X×Y→AX

DIV BL ;AL为求得的最小公倍数,BL中为最大约数 POP DX

RET

LCM ENDP

6.试编制一个计算两个正整数X和Y最大公约数的子程序。

答:程序参见题5

7.设一维数组LIST1、LIST2、LIST3中分别存放了若干个单字长的带符号数,试编制程序使3个表中的数据都按降序排列。表中元素的个数分别在NUM1、NUM2、NUM3三个单元中。

答: DATA SEGMENT

LIST1 DW 1,2,3,4,5,6,7,8,9,10

NUM1 DW ($-LIST1)/2

LIST2 DW 10,20,30,40,50,60,7,80,90,100

NUM2 DW ($-LIST2)/2

LIST3 DW 100,200,300,400,500,600,700,800,900,1000

NUM3 DW ($-LIST3)/2

TABLE DW 2 DUP(?)

DATA ENDS

CODE SEGMENT

ASSUME CS:CODE,DS:DATA

START:MOV AX,DATA

MOV DS,AX

MOV TABLE,OFFSET LIST1

MOV TABLE+2,OFFSET NUM1

LEA BX,TABLE

CALL SORT

MOV TABLE,OFFSET LIST2

MOV TABLE+2,OFFSET NUM2

LEA BX,TABLE

MOV TABLE,OFFSET LIST3

MOV TABLE+2,OFFSET NUM3

LEA BX,TABLE

CALL SORT

MOV AH,4CH

INT 21H

SORT PROC NEAR

PUSH AX

PUSH CX

PUSH SI

PUSH DI

MOV DI,[BX+2] ;取元素个数地址 MOV CX,[DI] ;取元素个数

LOOP1:MOV DX,CX

MOV SI,[BX]

LOOP2:MOV AX,[SI]

CMP AX,[SI+2]

JGE NEXT

XCHG AX,[SI+2]

MOV [SI],AX

NEXT:ADD SI,2

LOOP LOOP2

MOV CX,DX

LOOP LOOP1

POP DI

POP SI

POP CX

POP AX

RET

SORT ENDP

CODE ENDS

END START

8.试编制一个通用多字节数求和的宏指令。

答: SUM MACRO BX,N,RESULT

PUSH AX

PUSH CX

MOV AL,0

MOV CX,N

NEXT:ADD AL,[BX]

INC BX

LOOP NEXT

MOV RESULT,AL

POP CX

汇编语言试题及参考答案

汇编语言试题及参考答案 一,填空题 1.ZF标志位是标志结果是否为零的,若结果,ZF为( 1 ),否则ZF为( 0 ).当ZF为1时,SF为( 0 ) 2.标号可以有两种类型属性.它们是( )和( ) 3.8位无符号整数的表示范围为0--255,写成16进制形式为( ),8位有符号整数的表示范围为-128--+127,写成16进制形式为( ) 4.伪指令DB,GROUP 和NAME 三个标号名字域必须有名字的是( ),不得有名字的是( ),可有可无名字的是( ). 5.循环程序通常由( )( )( )和循环结果外理四部分构成 6.在数值不达式中,各种运算符可可混合使用,其优先次序规则*,/( )于+,-;XOR,OR( )于AND,LT( )于GT 7. 宏指令定义必须由伪指令( )开始,伪指令( )结束,两者之间的语句称为( ) 8.调用程序与子程序之间的参数传递方法有四种,即堆栈法( )( )( ) 9.分别用一条语句实现下述指明的功能 (1)栈顶内容弹出送字变量AYW( ) (2)双字变量AYD存放的地址指针送ES和SI( ) (3)变量AY2类型属性送AH( ) (4)不允许中断即关中断( ) (5)将字符串'HOW ARE YOU!'存入变量AYB( ) (6)子程序返回调用程序( ) (7)地址表达式AYY[4]的偏移地址送字变量ADDR( ) (8)AX的内容加1,要求不影响CF( ) (9)BX的内容加1,要求影响所有标志位( ) (10)若操作结果为零转向短号GOON( ) 二,单选题 1.IBM PC微机中,有符号数是用( )表示的 1.原码 2.补码 3.反码 4.BCD码 2.把汇编源程序变成代码程序的过程是( ) 1.编译 2.汇编 3.编辑 4.链接

汇编语言基础练习题目

、填空 1. 在8086/8088的计算机中,存储单元的20位物理地址由两部分组成,即16 位的 段地址 和16位的 偏移地址,物理地址=段地址X 10H+偏移量。 2. 段的起始地址必须是某小段的首地址,它能被 10H 整除。 3. 已知01020H 字单元的内容为6A58H 请分别写出它的两个字节单元的地址和 内容: (01020H =58H, ( 01021H =6AH 4. 指令执行后,若标志寄存器的ZF=0,则表示结果不为0;若SF=0,则表示结 果的符号是正号,即结果为正数。 5. 控制器从存储器取出一条指令后,指令指针寄存器IP 的内容是 将要执行的下 一条指令开始的偏移地址。 6. 段地址和偏移地址为1000: 127B 的存储单元的物理地址是1127BH 解:由物理地址=段地址X 10H+偏移量的公式可得 物理地址=1000HX 10H+127BH=10000H+127BH=1127BH 、选择 1. 与CS 寄存器组合才能形成代码段的物理地址的寄存器是 解:16K 个字单元,即为32K 个字节单元。由于2的15次方为32K,因此至 少需要15位二进制数才能表示16K 个字单元。 3. 已知一数据段的段地址是0100H,这个段的第6个字单元的物理地址是(B ) o 解:由于一个字单元占用两个字节,第一个字单元的偏移地址为 0000H,因 此第一个字单元的物理地址为 01000H 。以后每一个字单元的地址在前一个的基 C )。 A. SP 寄存器 B. BP 寄存器 C. IP 寄存器 D. BX 寄存器 2.如果存储器分段时, 的二进制数至少是( 一个段最多允许16K 个字单元,那么表示该段内偏移地址 A )o A.15 位 位 B.16 位 C.17 位 D.18 A. 01010H B. 0100AH C.01012H D.01006H

汇编语言课后习题答案

2.1已知DS=2000H、BX=0100H、SI=0002H,存储单元[20100H]~[20103H]依次存放12345678H,[21200H]~[21203H]依次存放2A4C B765H,说明下列每条指令执行完后AX寄存器的内容。 (1)mov ax,1200h (2)mov ax,bx (3)mov ax,[1200h] (4)mov ax,[bx] (5)mov ax,[bx+1100h] (6)mov ax,[bx+si] (7)mov ax,[bx][si+1100h] 〔解答〕 (1)AX=1200H (2)AX=0100H (3)AX=4C2AH;偏移地址=bx=0100h (4)AX=3412H;偏移地址=bx=0100h (5)AX=4C2AH;偏移地址=bx+1100h=1200h (6)AX=7856H;偏移地址=bx+si=0100h+0002h=0102h (7)AX=65B7H;偏移地址=bx+si+1100h=0100h+0002h+1100h=1202h 〔习题2.2〕指出下列指令的错误 (1)mov cx,dl (2)mov ip,ax (3)mov es,1234h (4)mov es,ds (5)mov al,300 (6)mov[sp],ax (7)mov ax,bx+di

(8)mov20h,ah 〔解答〕 (1)两操作数类型不匹配 (2)IP指令指针禁止用户访问 (3)立即数不允许传给段寄存器 (4)段寄存器之间不允许传送 (5)两操作数类型不匹配 (6)目的操作数应为[SI] (7)源操作数应为[BX+DI] (8)立即数不能作目的操作数 〔习题2.5〕已知SS=2200H、SP=00B0H,画图说明执行下面指令序列时,堆栈区和SP的内容如何变化?mov ax,8057h push ax mov ax,0f79h push ax pop bx pop[bx] 〔解答〕 mov ax,8057h push ax mov ax,0f79h push ax pop bx;bx=0f79h pop[bx];DS:[0f79h]=8057h

微机原理与汇编语言复习题及参考答案

微机原理与汇编语言复习题及参考答案 ——CSDN下载频道提供,请尊重原创 一、选择题: 1. 设AL=0A8H,CX=2,CF=1,执行RCL AL,CL指令后,AL中的值为() A. 51H B. A3H C. 47H D. 0C5H 2. 下述指令的执行结果是() MOV AL,0C2H AND AL,0F0H A.AL=40H B.AL=20H C.AL=0C0H D.AL=0E0H 3. 完成对CL寄存器的容乘以4的正确操作是() A.ROL CL,1 B.MUL 4 C.SHL CL,1 D.MOV CL,2 ROL CL,1 SHL CL,1 SHL CL,CL 4. 无论BH中原有的数是奇数或偶数,若要使BH中的数一定为奇数,应执行的指() A. ADD BH,01H B. OR BH,01H C. XOR BH,01H D. TEST BH,01H 5. 假设(AL)= 37H,(BL)= 95H,执行指令IMUL BL后(AX)= () A. 0E903H B. 2003H C. 0DBBH D. 2008H 6. 下面的数据传送指令中,错误的操作是() A. MOV SS:[BX+DI],1000H B. MOV DX,1000H C. MOV WORD PTR[BX],1000H D. MOV DS,2000H 7. CPU要访问的某一存储单元的实际地址称() A.段地址B.偏移地址C.物理地址D.逻辑地址 8. 某存储单元的物理地址是12345H,可以作为它的段地址有() A.2345H B.12345H C.12340H D.1234H 9. 计算机能直接识别的的语言() A.汇编语言 B.机器语言C.高级语言D.低级语言 10. 下列指令中操作数在代码段中的是() A.MOV AL,25H B.ADD AH,BL C.INC DS:[25] D.CMP AL,BL 11.直接、间接、立即三种寻址方式指令的执行速度,由决至慢的排序为()A.直接、立即、间接B.直接、间接、立即 C.立即、直接、间接D.不一定 12.若栈顶的物理地址是2010011,当执行完指令CALL AX后,栈顶的物理地址是()A.2010211 B.2010111 C.200FFH D.200FEH 13.当执行完下列指令序列后,标志位CF和OF的值是() MOV AX,OC126H MOV BX,5AB7H SUB AX,BX A.0,0 B.0,1 C.1,0 D.1,1 14. JMP BX的目标地址偏移量是(D)。 A.SI的容B.SI所指向的存字单元之容 C.IP+SI的容D.IP+[SI] 15.指令MOV AX,10[BX]的源操作数的寻址方式是() A.基址寻址B.寄存器寻址MOV AX,BX C.变址寻址AX【BX+DI】(只能用BX,BP;SI和DI) D.寄存器相对寻址 16.指出下列哪个数据在汇编语言中是非法的。()

【汇编语言程序设计】试题及答案合集

《汇编语言程序设计试题及答案》合集 汇编语言程序设计试题及答案 1.对于有符号的数来说,下列哪个值最大(D) A:0F8H B:11010011B C:82 D:123Q 2.下列有关汇编语言中标号的命名规则中,错误的是(D) A:通常由字母打头的字符、数字串组成 B:标号长度不能超过31个字符 C:?和$不能单独作为标号 D:.号不可位于标号首 3.8088/8086存储器分段,每个段不超过(D ) A.64K个字 B.32K个字节 C.1兆个字节 D.64K个字节 4.寻址指令MOV CX, [BX + DI + 20]使用的是哪一种寻址方式(B)A:寄存器寻址B:相对基址变址寻址 C:变址寻址D:基址变址寻址 5.若AX= - 15要得到AX=15应执行的指令是(A ) A.NEG AX B.NOT AX C.INC AX D.DEC AX 6.8086/8088系统执行传送指令MOV时( A) A.不影响标志位 B.影响DF方向标志 C.影响SF符号标志 D.影响CF进位标志 7.若要求一个操作数中的若干位维持不变,若干位置?1?,可以使用(B)A:NOT B:OR C:AND D:XOR 8.下列指令中段默认为堆栈段的是( C) A.MOV AX,[BX+SI+10] B.ADD AX,ES:[SI] C.SUB [BX],[BP][DI] D. MOV DX,[1000H] 9.关于8086/8088微机系列,下列说法哪个是正确的(D) A:一个存储单元由16个二进制位组成,简称字。

B:当存储一个字数据时,低字节放高地址位,高字节放低地址位。 C:在内存空间中,可以无限分配段,且段的大小不受限制。 D:段与段之间可以邻接,也可以重叠。 10.下列关于堆栈的说法,错误的是(D) A:以?先入后出?为原则。 B:栈区最高地址单元的前一个单元为栈底。 C:运行中SP寄存器动态跟踪栈顶位置。 D:压栈和弹出都是以字节为单位。 11.表示过程定义结束的伪指令是( A) A.ENDP B.ENDS C.END D.ENDM 12.BUF1 DB 3 DUP(0,2 DUP (1,2),3) COUNT EQU $-BUF1 符号COUNT等价的值是( B) A.6 B.18 C.16 D.9 13.下列标志位中,可以用来判断计算结果正负的是(B) A:PF B:SF C:DF D:OF 14.下列指令正确的是( CD) A. MOV [100H], [BX] B.MOV DS, ES C. ADD V[BX], CX D.MOV AX, 34H 15.下列哪个寄存器是属于指针寄存器(C) A:SI B:DX C:SP D:ES 二、填空题 (每小题4 分,共 20 分) 1.下列程序段求数组FLD的平均值,结果在AL中。请将程序填写完整(不考虑溢出) FLD DW 10, -20, 30, -60, -71, 80, 79, 56 _LEA SI,FLD______ MOV CX, 8 XOR AX, AX

汇编语言课后习题解答

第1章基础知识 检测点1.1(第9页) (1)1个CPU的寻址能力为8KB,那么它的地址总线的宽度为13位。 (2)1KB的存储器有1024个存储单元,存储单元的编号从0到1023。 (3)1KB的存储器可以存储8192(2^13)个bit,1024个Byte。 (4)1GB是1073741824(2^30)个Byte、1MB是1048576(2^20)个Byte、1KB是1024(2^10)个Byte。 (5)8080、8088、80296、80386的地址总线宽度分别为16根、20根、24根、32根,则它们的寻址能力分别为: 64(KB)、1(MB)、16(MB)、4(GB)。 (6)8080、8088、8086、80286、80386的数据总线宽度分别为8根、8根、16根、16根、32根。则它们一次可以传送的数据为: 1(B)、1(B)、2(B)、2(B)、4(B)。 (7)从内存中读取1024字节的数据,8086至少要读512次,80386至少要读256次。 (8)在存储器中,数据和程序以二进制形式存放。

(1)1KB=1024B,8KB=1024B*8=2^N,N=13。 (2)存储器的容量是以字节为最小单位来计算的,1KB=1024B。 (3)8Bit=1Byte,1024Byte=1KB(1KB=1024B=1024B*8Bit)。 (4)1GB=1073741824B(即2^30)1MB=1048576B(即2^20)1KB=1024B(即2^10)。(5)一个CPU有N根地址线,则可以说这个CPU的地址总线的宽度为N。这样的CPU 最多可以寻找2的N次方个内存单元。(一个内存单元=1Byte)。 (6)8根数据总线一次可以传送8位二进制数据(即一个字节)。 (7)8086的数据总线宽度为16根(即一次传送的数据为2B)1024B/2B=512,同理1024B/4B=256。 (8)在存储器中指令和数据没有任何区别,都是二进制信息。

汇编语言复习题(附答案)

汇编语言复习题 注:蓝色标记的为答案,此答案仅供参考,大家自己做一下或看以一下,认为不对的地方,可以提出来一起讨论一下,另外看一下课后老师布置的相应作业。在此文档最后最后附有课 后四、六章的答案,大家抓紧时间复习哦! 一、选择题 1. 把要执行的程序与库文件连接起来形成可执行文件的系统程序是(B )。 A. 汇编程序 B. 连接程序 C. 机器语言程序 D.源代码程序 2. 在8088/8086的寄存器组中,CPU确定下一条指令的物理地址时需要用到的寄存器对是 (C )。 A..SS 和SP B.DS 和DI C.CS 和IP D.ES 和SI 3. 为了使主机访问外设方便起见,外设中的每个寄存器给予一个(C )。 A.物理地址 B. 逻辑地址 C. 端口地址 D. 段地址 4. MOV AX, 3064H,该指令中源操作数采用的寻址方式是(A )。 A.立即 B. 直接 C. 寄存器相对 D. 寄存器间接 5. 换码指令的助记符是(C )。 A. XCHG B. LEAS C.XLAT D. MOV 6. 如果A> B (A、B有符号数)发生转移,应选择的条件转移指令是(JGE )。 7. 下列符号中,可用作标识符的是(C )。 A.MOV B.AX C.MSG1 D.1ABC 8. X DB 10H DUP (1 , 2)内存变量定义语句拥有了( A )个字节的存储空间。 A.20D B.10D C.20H D.10H 9. 当DF=0时,执行串操作指令MOVSB变址寄存器SI、DI的值将(C )。 A.不变 B. 减1 C. 加1 D. 无法确定 10. 如下指令可将AX寄存器内容改变的是(A )。 A. AND AX , BX B . TEST AX , BX C. CMP AX , BX D . XCHG AX , AX 11.16位CPU支持的I/O 地址范围是(D )。 A. 0~0FFFFFH B. 0~0FFFFH C. 0~0FFFH D. 0~0FFH 12. MUL CL指令实现的功能是(A )。 A.无符号乘法:AX AL X CL B.有符号乘法:AX AL X CL C.无符号乘法:DX AL X CL D .有符号乘法:DX AL X CL 13. DOS系统功能调用(INT 21H )中,显示字符串的功能号是(D )。 A.01H B.02H C.08H D. 09H 14. 在16位CPU读取指令时,需要用到的寄存器对是(C )。 A.SS 和SP B.DS 和DI C.CS 和IP D.ES 和SI 15. 下列指令中,源操作数(既第2操作数)属于基址加变址寻址方式是(B )。 A.MOV AX,23H B. MOV AX,[BX+SI] C.SUB AX,[BX] D. ADD AX,BX 16. 有内存变量定义语句:VAR DW 10 DUP(1 , 2), 1234H, VAR的属性TYPE LENGTH和

汇编语言试题及答案(1)

一,单项选择题(每小题1分,共20分) 1.指令JMP FAR PTR DONE属于() A.段内转移直接寻址B.段内转移间接寻址C.段间转移直接寻址D.段间转移间接寻址2.下列叙述正确的是() A.对两个无符号数进行比较采用CMP指令,对两个有符号数比较用CMP S指令 B.对两个无符号数进行比较采用CMPS指令,对两个有符号数比较用CM P指令 C.对无符号数条件转移采用JAE/JNB指令,对有符号数条件转移用JGE/J NL指令 D.对无符号数条件转移采用JGE/JNL指令,对有符号数条件转移用JAE/J NB指令 3.一个有128个字的数据区,它的起始地址为12ABH:00ABH,请给出这个数据区最末一个字单元的物理地址是() A.12C5BH B.12B6BH C.12C5AH D.12BFEH 4.在下列指令的表示中,不正确的是() A.MOV AL,[BX+SI] B.JMP SHORT DONI C.DEC [BX] D.MUL CL 5.在进行二重循环程序设计时,下列描述正确的是() A.外循环初值应置外循环之外;内循环初值应置内循环之外,外循环之内 B.外循环初值应置外循环之内;内循环初值应置内循环之内 C.内、外循环初值都应置外循环之外 D.内、外循环初值都应置内循环之外,外循环之内 6.条件转移指令JNE的测试条件为() A.ZF=0 B.CF=0 C.ZF=1 D.CF=1 7.8086CPU在基址加变址的寻址方式中,变址寄存器可以为()A.BX或CX B.CX或SI C.DX或SI D.SI或DI 8.已知BX=2000H,SI=1234H,则指令MOV AX,[BX+SI+2]的源操作在()中。 A.数据段中偏移量为3236H的字节 B.附加段中偏移量为3234H的字节 C.数据段中偏移量为3234H的字节

汇编语言题库

汇编语言题库 一、单项选择题 1、在下列的选项中,能够组成计算机系统的是()。 A.硬件系统和软件系统 B.CPU、存储器、输入/输出设备 C.操作系统、各种语言 D.系统软件和应用软件2、汇编语言属于()。 A.用户软件 B.系统软件 C.高级语言 D.机器语言3、汇编语言源程序经汇编程序汇编后产生的文件的扩展名是()。 A.EXE B.OBJ C.ASM D.LST 4、汇编语言的什么文件经链接(LINK)后产生可执行文件? A.ASM B.EXE C.LST D.OBJ 5、中央处理器CPU是由()组成的。 A.运算器 B.控制器 C.寄存器组 D.前三者6、IBM PC机的DOS是属于()。 A.用户软件B.系统软件C.系统硬件 D.一种语言7、汇编语言源程序是()程序。 A.不可直接执行的B.可直接执行的 C.经汇编程序汇编后就可执行的D.经连接后就可直接执行的8、8086/8088 CPU的寄存器组中,8位的寄存器共有()个。 A.4B.6C.8D.109、8086/8088 CPU的寄存器组中,16位的寄存器共有()个。 A.10B.12C.13D.1410、8086/8088 CPU执行算术运算时PSW共有()个标志位会受影响。 A.4B.5C.6D.711、在程序执行过程中,IP寄存器始终保存的是()。 A.上一条指令的首地址B.本条指令的首地址。 C.下一条指令的首地址D.需计算有效地址后才能确定地址。 12、IBM PC机的存储器可分()个段。 A.4B.256C.512D.65536 13、当使用BP作编程地址时,此时使用的是()段。 A.CSB.DSC.ESD.SS

汇编语言课后习题答案___郑晓薇(整理后的)

习题一 1 无符号数: 11010011=211=D3H,01110111=119=77H, 10000011=131=83H, 00101111=47=2FH, 10101010=170=AAH 带符号数:11010011= -45=D3H,01110111=+119=77H,10000011= -125=83H, 00101111=+47=2FH,10101010= -86=AAH 2 5E8AH,0BE6H,3DEH,4940H 3 00011101+00110101=01010010=5 2H=82 01001001+11101000=00110001=3 1H=49 10111110+01010010=00010000=1 0H=16 10011010+11110001=10001011=8 BH= -117 4 00101001+01010011=01111100+0 0000110=10000010=82H=82 01110011-00100100=01001111-00000110=01001001=49H=49 01100110+00011000=01111110+0 0000110=10000100=84H=84 0000000100110010+01110101=00 00000110100111+00000110 =0000001000000111=0207H=207 5 000020A3H,FF94H,00003456H,007FH,FFFFEC00H 6 无符号数:0~65535,0000H~FFFFH;带符号数:-32768~+32767,8000H~7FFFH 7 (1) 38H等于十进制数56,是十进制数56的补码,数字8的ASCII码,十进制数38的压缩BCD码 (2) FFH等于十进制数-1,是带符号数-1的补码,无符号数为255 (3) 5AH等于十进制数90,是十进制数90的补码,大写字母Z的ASCII码 (4) 0DH等于十进制数13,是十进制数13的补码,回车符的ASCII码 8 (1) 108=01101100B=6CH,补码01101100B,压缩BCD码0000000100001000,ASCII码313038H (2) 46=00101110B=2EH,补码00101110B,压缩BCD码01000110,ASCII码3436H (3) –15=11110001B=F1H,补码11110001B,ASCII码2D3135H (4) 254=0000000011111110B=00FEH,补码0000000011111110B,压缩BCD 码0000001001010100,ASCII码323534H 9 (1) 56+63=01110111B,CF=0,SF=0,ZF=0,OF=0 (2) 83-45=00100110B,CF=0,SF=0,ZF=0,OF=0 (3) -74+29=11010011B,CF=0, SF=1,ZF=0,OF=0 (4) -92-37=01111111B,CF=1, SF=0,ZF=0,OF=1 10 回车、换行、响铃、ESC键、空格键、@、P、p 习题二 9 最少划分为16个逻辑段,最多划分为65536个逻辑段(每段16个字节) 10 CS:IP,DS:BX、SI、DI,ES:BX、SI、DI,SS:SP、BP 11 字节单元保存8位数,字单元保存16位数。根据源操作数的属性确定要访问的是字节单元还是字单元。 12 对于字节单元来说,偶地址和奇地址一样;对于字单元而言,最好用偶地址保存,可减少CPU的访存次数。 13 首单元的物理地址=38AE8H,末单元的物理地址 =38AE8H+7FFFH=40AE7H

汇编题库重点复习题

1.已知X=76,则[X]补=_______。 A.76H B. 4CH C. 0B4H D. 0CCH 2.已知[X]补=80H,则X =_______。 A.80H B.0 C. 0FFH D. -80H 3.已知[X]补=80H,则[X]补/2=_______。 A.0CCH B.4CH C. 49H D. 31H 4.已知X=78,Y=-83,则[X+Y]补=_______。 A.0F5H B.0A1H C. 0FBH D. 65H 5.将124转换成十六进制的结果是_______。 A.7CH B.7DH C. 7EH D. 7BH 6.将93H看成一个压缩的BCD码,其结果是_______。 A.10010101 B.10010011 C. 10000011 D. 10000001 7.45转换成二进制数是_______。 A.10101101 B.00111101 C. 00101101 D. 10011101 8.6CH 转换成十进制数是_______。 A.118 B.108 C. 48 D. 68 9.将93H扩展为字的结果是_______。 A.FF93H B.0093H C. 1193H D. 1093H 10.56的压缩BCD码是_______。 A.38H B. 56H C. 0506H D. 3536H 11.ASCII中的47H表示字符的是_______。 A.“7” B. “G” C. “g” D. “E” 12.十进行数-1的8位二进制数补码是_______。 A.11111110 B. 11110000 C. 11111111 D. 10001111 13.下列为补码表示,其中真值最大的数是_______。 A.10001000 B. 11111111 C. 00000000 D. 00000001 14.十六进制数88H,可表示成下面几种形式,请找出错误的表示_______。 A.无符号十进制数136 B. 1带符号十进制数-120D C. 压缩BCD码十进制数88 D. 8位二进制数-8的补码 15.计算机对字符、符号采用统一的二进制编码。其编码采用的是_______。 A.BCD码 B. 二进制码 C. ASCII D. 十六进制码第二章 16.在微机中分析并控制指令执行的部件是_______。 A.寄存器 B. 数据寄存器 C. CPU D. EU 17.在计算机的CPU中执行算术逻辑运算的部件是_______。 A.ALU B. PC C. AL D. AR 18.执行指令PUSH CX后堆栈指针SP自动_______。 A.+2 B. +1 C. —2 D. —1 19.在标志寄存器中表示溢出的是_______。 A.AF B. CF C. OF D. SF 20.对汇编语言源程序进行翻译的是程序是_______。 A.连接程序 B. 汇编程序 C. 编译程序 D. 目标程序

汇编语言习题答案

第3章自测练习 一、选择题(四选一) 1.表示一条处理器指令所在存储单元的符号地址是 C。 A 变量 B 常量 C 标号 D 偏移量 2.汇编语言中的变量有多种类型属性,但错误的类型是 B 。 A 字节型byte B 字符型char C 字型word D 双字型dword 3.执行mov bx,seg var指令,BX得到变量var的 B 。 A 物理地址 B 段地址 C 偏移地址 D 内容 语句中,采用 C 分隔标号和指令。 A 逗号 B 分号 C 冒号 D 空格 5.欲设定从偏移地址100H开始安排程序,可使用 A 伪指令。 A org 100h B start=100h C start db 100h D start equ 100h 6.与“mov bx,offset var”指令等效的指令是 D 。 A mov bx,var B 1ds bx,var C les bx,var D 1ea bx,var. 7.下条语句 buf db l0 dup(3 dup(?,10),3,10) 汇编后,变量buf占有的存储单元字节数是 B 。 A 100 B 80 C 40 D 20 8.数据定义语句“numl dw(12 or 6 and 2) ge 0eh”,定义的num1单元的内容是 B。 A 0 B 0FFFFH C 1 D 0FFH 9.要求将A、B两个字符的ASCII码41H和42H顺序存放在连续两个字节存储单元中,可选用的语句是 A 。 A db`AB' B dw `AB' C db 0ABH D dw 0ABH 10.在汇编语言程序中,对END语句叙述正确的是 C 。 A END语句是一可执行语句 B END语句表示程序执行到此结束 C END语句表示源程序到此结束 D END语句在汇编后要产生机器码 11.下面的数据传送指令中,错误的操作是D。 A mov ss:[bx+di],byte ptr 10h B mov dx,l000h C mov word ptr[bx],1000h D mov ds,2000h 12.下面指令执行后,变量dab中的内容是 C 。 daw dw 2A05h dab db 0Fah … mov al,byte ptr daw sub dab,al A 0DAH B 0FAH C 0F5H D 0D0H

汇编语言课后习题答案郑晓薇后的

汇编语言课后习题答案郑 晓薇后的 Modified by JEEP on December 26th, 2020.

习题一1 2 5E8AH,0BE6H,3DEH,4940H 3 00011101+00110101=0101001 0=52H=82 4 5000020A3H,FF94H,00003456H,007FH, FFFFEC00H 6无符号数:0~65535,0000H~FFFFH;带符号数:-32768~ +32767,8000H~7FFFH 7 (1) 38H等于十进制数56,是十进制数56的补码,数字8的ASCII 码,十进制数38的压缩BCD码(2) FFH等于十进制数-1,是带符号数-1的补码,无符号数为255(3) 5AH等于十进制数90,是十进制数90的补码,大写字母Z的ASCII码(4) 0DH等于十进制数13,是十进制数13的补码,回车符的ASCII码8 (2) 46=00101110B=2EH,补码00101110B,压缩BCD码01000110,ASCII码3436H 9 (1) 56+63=01110111B, CF=0,SF=0,ZF=0,OF=0(2) 83-45=00100110B,CF=0, SF=0,ZF=0,OF=0(4) -92-37=01111111B,CF=1,SF=0,ZF=0,OF=1 10 回车、换行、响铃、ESC键、空格键、@、P、p 习题二 9 最少划分为16个逻辑段,最多划分为65536个逻辑段(每段16个字节) 10CS:IP,DS:BX、SI、DI,ES:BX、SI、DI,SS:SP、BP 11 字节单元保存8位数,字单元保存16位数。根据源操作数的属性确定要访问的是字节单元还是字单元。

《汇编语言》习题及解答

第1章基础知识 检测点(第9页) (1)1个CPU的寻址能力为8KB,那么它的地址总线的宽度为13位。 (2)1KB的存储器有1024个存储单元,存储单元的编号从0到1023。 (3)1KB的存储器可以存储8192(2^13)个bit,1024个Byte。 ~ (4)1GB是24(2^30)个Byte、1MB是1048576(2^20)个Byte、1KB是1024(2^10)个Byte。 (5)8080、8088、80296、80386的地址总线宽度分别为16根、20根、24根、32根,则它们的寻址能力分别为: 64(KB)、1(MB)、16(MB)、4(GB)。 (6)8080、8088、8086、80286、80386的数据总线宽度分别为8根、8根、16根、16根、32根。则它们一次可以传送的数据为: 1(B)、1(B)、2(B)、2(B)、4(B)。 (7)从内存中读取1024字节的数据,8086至少要读512次,80386至少要读256次。 (8)在存储器中,数据和程序以二进制形式存放。 解题过程: ' (1)1KB=1024B,8KB=1024B*8=2^N,N=13。 (2)存储器的容量是以字节为最小单位来计算的,1KB=1024B。 (3)8Bit=1Byte,1024Byte=1KB(1KB=1024B=1024B*8Bit)。 (4)1GB=24B(即2^30)1MB=1048576B(即2^20)1KB=1024B(即2^10)。 (5)一个CPU有N根地址线,则可以说这个CPU的地址总线的宽度为N。这样的CPU最多可以寻找2的N次方个内存单元。(一个内存单元=1Byte)。 (6)8根数据总线一次可以传送8位二进制数据(即一个字节)。 (7)8086的数据总线宽度为16根(即一次传送的数据为2B)1024B/2B=512,同理1024B/4B=256。 (8)在存储器中指令和数据没有任何区别,都是二进制信息。

汇编语言期末复习题库

一、填空题 1.中央处理器包括运算器、控制器、寄存器组。 2.物理地址是指实际的20 位主存单元地址,每个存储单元对应唯一 的物理地址。 3.用二进制代码书写指令和程序的语言,称为机器语言。 4.计算机中的指令由操作码和操作数两部分组成。 5.把A和B两个寄存器的内容进行异或运算,若运算结果是0 ,那么 A、B寄存器的内容必定相同。 6.AL,BL中存放着压缩的BCD数,(AL)=18H,(BL)=47H,执行如下 两条指令ADD AL,BL 和DAA后,(AL)=65H 。 7.当指令“SUB AX,BX”执行后,CF=1,说明最高有效位有借位; 对有符号数,说明操作结果溢出。 8.FLAG状态标志寄存器中,AF为辅助进位标志,CF为进位标志, SF为符号标志,ZF为零标志,OF为溢出标志,PF为奇 偶性标志。 9.指出下列指令源操作数的寻址方式: MOV AX,ARRAY[SI] 变址寻址 MOV AX,ES:[BX] 寄存器间接寻址 MOV AX,[200H] 直接寻址 MOV AX,[BX+DI] 基址变址寻址 MOV AX,BX 寄存器寻址 MOV AX,1200H 立即数寻址

MOV AX,20[BX+SI]基址变址寻址 MOV AX,[DI+20] 变址寻址 10.现有(DS)=2000H,(BX)=0100H,(SI)=0002H,(20100H)=12H, (20101H)=34H,(20102H)=56H,(20103H)=78H,(21200H)=2AH,(21201H)=4CH,(21202H)=0B7H,(21023H)=65H,下列指令执行后填入AX寄存器的内容: (1)MOV AX,1200H;(AX)= 1200H (2)MOV AX,BX;(AX)=0100H (3)MOV AX,[1200H];(AX)= 4C2AH (4)MOV AX,[BX];(AX)= 3412H (5)MOV AX,1100[BX];(AX)= 4C2AH (6)MOV AX,[BX][SI];(AX)= 7856H (7)MOV AX,1100[BX][SI];(AX)= 65B7H 11.已知‘A’的ASCII是41H,那么‘E’的ASCII是45H 。 12.Ends 是段定义结束伪指令,与Segment配套使用。 13.逻辑地址由段基值和偏移量组成。将逻辑地址转换为物理地址的公 式是段基值*16+偏移量。其中的段基值是由段寄存器存储。 14.一个有16个字的数据区,它的起始地址为70A0:0100H,那么该数据 区的最后一个字单元的物理地址为70B1E H。 15.DEBUG命令中,显示内存命令 D ,显示寄存器命令R,汇编命令 A ,执行命令G 。

汇编语言程序设计第3章【课后答案】

汇编语言程序设计第四版 【课后习题答案】--囮裑為檤第3章汇编语言程序格式 〔习题〕伪指令语句与硬指令语句的本质区别是什么伪指令有什么主要作用 〔解答〕 伪指令语句与硬指令语句的本质区别是能不能产生CPU动作; 伪指令的作用是完成对如存储模式、主存变量、子程序、宏及段定义等很多不产生CPU动作的说明,并在程序执行前由汇编程序完成处理。 〔习题〕什么是标识符,汇编程序中标识符怎样组成 〔解答〕 为了某种需要,每种程序语言都规定了在程序里如何描述名字,程序语言的名字通常被称为标识符; 汇编语言中的标识符一般最多由31个字母、数字及规定的特殊符号(如-,$,,@)组成,不能以数字开头。 〔习题〕什么是保留字,汇编语言的保留字有哪些类型,并举例说明。 〔解答 保留字是在每种语言中规定了有特殊意义和功能的不允许再做其它用处的字符串;汇编语言的保留字主要有硬指令助记、伪指令助记符、运算符、寄存器名以及预定义符号等。汇编语言对大小写不敏感。如定义字节数和字符串的DB就是伪指令助记符。 〔习题〕汇编语句有哪两种,每个语句由哪4个部分组成 〔解答〕 汇编语句有执行性语句和说明性语句; 执行性语句由标号、硬指令助记符、操作数和注释四部分组成; 说明性语句由名字、伪指令助记符、参数和注释四部分组成 〔习题〕汇编语言程序的开发有哪4个步骤,分别利用什么程序完成、产生什么输出文件。 〔解答〕 ⒈编辑文本编辑程序汇编语言源程序.asm ⒉汇编汇编程序目标模块文件.obj ⒊连接连接程序可执行文件.exe或

⒋调试调试程序应用程序 〔习题〕区分下列概念: (1)变量和标号 (2)数值表达式和地址表达式 (3)符号常量和字符串常量 〔解答〕 (1)变量是在程序运行过程中,其值可以被改变的量;标号是由用户自定义的标识符,指向存储单元,表示其存储内容的逻辑地址。 (2)数值表达式一般是由运算符连接的各种常数所构成的表达式,地址表达式是由名字、标号以及利用各种的操作符形成的表达式。 (3)在程序中,为了使常量更便于使用和阅读,经常将一些常量用常量定义语句定义为符号常量,被一对双引号括起来的若干个字符组成的字符序列被称为字符串常量。 〔习题〕假设myword是一个字变量,mybyte1和mybyte2是两个字节变量,指出下列语句中的错误原因。 (1) mov byte ptr [bx],1000 (2) mov bx,offset myword[si] (3) cmp mybyte1,mybyte2 (4) mov al,mybyte1+mybyte2 (5) sub al,myword (6) jnz myword 〔解答〕 (1)1000超出了一个字节范围 (2)寄存器的值只有程序执行时才能确定,而offset是汇编过程计算的偏移地址,故无法确定,改为lea bx,myword[si] (3)两个都是存储单元,指令不允许 (4)变量值只有执行时才确定,汇编过程不能计算 (5)字节量AL与字量myword,类型不匹配 (6)Jcc指令只有相对寻址方式,不支持间接寻址方式 〔习题〕OPR1是一个常量,问下列语句中两个AND操作有什么区别 AND AL,OPR1 AND 0feh 〔解答〕

《汇编语言》第二版习题答案(全)

教材:《汇编语言》 检测点1.1 (1)1个CPU的寻址能力为8KB,那么它的地址总线的宽度为 13位。 (2)1KB的存储器有 1024 个存储单元,存储单元的编号从 0 到 1023 。 (3)1KB的存储器可以存储 8192(2^13)个bit, 1024个Byte。 (4)1GB是 1073741824 (2^30)个Byte、1MB是 1048576(2^20)个Byte、1KB是 1024(2^10)个Byte。 (5)8080、8088、80296、80386的地址总线宽度分别为16根、20根、24根、32根,则它们的寻址能力分别为: 64 (KB)、 1 (MB)、 16 (MB)、 4 (GB)。 (6)8080、8088、8086、80286、80386的数据总线宽度分别为8根、8根、16根、16根、32根。则它们一次可以传送的数据为: 1 (B)、 1 (B)、 2 (B)、 2 (B)、 4 (B)。 (7)从内存中读取1024字节的数据,8086至少要读 512 次,80386至少要读 256 次。 (8)在存储器中,数据和程序以二进制形式存放。 解题过程: (1)1KB=1024B,8KB=1024B*8=2^N,N=13。 (2)存储器的容量是以字节为最小单位来计算的,1KB=1024B。 (3)8Bit=1Byte,1024Byte=1KB(1KB=1024B=1024B*8Bit)。 (4)1GB=1073741824B(即2^30)1MB=1048576B(即2^20)1KB=1024B(即2^10)。 (5)一个CPU有N根地址线,则可以说这个CPU的地址总线的宽度为N。这样的CPU最多可以寻找2的N 次方个内存单元。(一个内存单元=1Byte)。 (6)8根数据总线一次可以传送8位二进制数据(即一个字节)。 (7)8086的数据总线宽度为16根(即一次传送的数据为2B)1024B/2B=512,同理1024B/4B=256。(8)在存储器中指令和数据没有任何区别,都是二进制信息。 检测点 2.1 (1) 写出每条汇编指令执行后相关寄存器中的值。 mov ax,62627 AX=F4A3H mov ah,31H AX=31A3H mov al,23H AX=3123H add ax,ax AX=6246H mov bx,826CH BX=826CH mov cx,ax CX=6246H mov ax,bx AX=826CH add ax,bx AX=04D8H mov al,bh AX=0482H mov ah,bl AX=6C82H add ah,ah AX=D882H add al,6 AX=D888H add al,al AX=D810H mov ax,cx AX=6246H Microsoft(R) Windows DOS

汇编语言课后习题答案 王爽主编

补全编程,利用jcxz指令,实现在内存2000H段中查找第一个值为0的字节,找到后,将它的偏移地址存储在dx中。 assume cs:code code segment start: mov ax,2000h mov ds,ax mov bx,0 s: mov ch,0 mov cl,[bx] jcxz ok ;当cx=0时,CS:IP指向OK inc bx jmp short s ok: mov dx,bx mov ax ,4c00h int 21h code ends end start 检测点9.3 补全编程,利用loop指令,实现在内存2000H段中查找第一个值为0的字节,找到后,将它的偏移地址存储在dx中。 assume cs:code code segment start: mov ax,2000h mov ds,ax mov bx,0 s:mov cl,[bx] mov ch,0 inc cx inc bx loop s ok:dec bx mov dx,bx mov ax,4c00h int 21h code ends end start 书P101,执行loop s时,首先要将(cx)减1。 “loop 标号”相当于 dec cx if((cx)≠0) jmp short 标号 检测点10.1 补全程序,实现从内存1000:0000处开始执行指令。 assume cs:code stack segment db 16 dup (0) stack ends code segment start: mov ax,stack mov ss,ax mov sp,16 mov ax, 1000h

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