汇编语言程序设计练习题

  • 格式:pdf
  • 大小:111.50 KB
  • 文档页数:9

下载文档原格式

  / 9
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

汇编语言程序设计练习题

阅读程序并完成填空:

1.1.MOV BL,85H

MOV AL,17H

ADD AL,BL

AL=?,BL=?,CF=?

2.2.MOV AX,BX

NOT AX

ADD AX,BX

INC AX

AX=?,CF=?

3.3.MOV AX,0FF60H

STC

MOV DX,96

XOR DH,0FFH

SBB AX,DX

AX=?,CF=?

4.4.MOV BX,0FFFEH

MOV CL,2

SAR BX,CL

5.5.MOV BX,0FFH

AND BX,0FFFH

OR BX,0F0FH

XOR BX,00FFH

上述程序段运行后,BX=?,CF=?

6.6.CMP AX,BX

JGE NEXT

XCHG AX,BX

NEXT:CMP AX,CX

JGE DONE

XCHG AX,CX

DONE:。。。。。

试回答:

(1)(1)上述程序段执行后,原有AX、BX、CX中最大数存放在哪个寄存器中?

(2)(2)这3个数是带符号数还是无符号数?

7.7.在数据段ADDR1地址处有200个字节,要传送到数据段ADDR2处。

MOV AX,SEG ADDR1

MOV DS,AX

MOV ES,-------

MOV SI,-------

MOV DI,OFFSET ADDR2

MOV-----,200

CLD

REP---------

8.8.ADDR1开始的单元中连续存放两个双字数据,将其求和存放在ADDR2开始的单元。

MOV CX,2

XOR BX,BX

CLC

NEXT:MOV AX,[ADDR1+BX]

ADC AX,-------

MOV[ADDR2+BX],AX

ADD--------,2

---------NEXT

9.9.设初值AX=1234H,BX=5678H,DX=0ABCDH,则执行下面一段程序后AX=------,BX=----,DX=--------。

MOV CL,4

SHL DX,CL

MOV BL,AH

SHL AX,CL

SHR BL,CL

OR DL,BL

10.10.设有一个首地址为ARRAY有N个字数据的数组,要求求出该数组之和,并把结果存入TOTAL地址中,有关程序如下:MOV CX,------

MOV AX,0

MOV SI,0

START:ADD AX,-----

ADD SI,2

DEC CX

JNZ START

MOV------,AX

11.11.设段地址为1000H偏移地址为STR的5个字节的内容逐一装入累加器中,加1后,再送入STR为首地址的存储单元中,程序如下:

MOV AX,1000H

MOV ES,AX

MOV DS,AX

---------

MOV CX,5

CLD

NEXT:LODSB

ADD AL,1

LOOP NEXT

12.12.在一个首地址为STR、长度为N的字符串中查找空格,找到则向DL中送1,否则向DL中送-1。

MOV CX,N

MOV SI,0

MOV AL,20H

NEXT:CMP AL,----

JZ DISPY

INC----

-----NEXT

MOV DL,-1

JMP NEXT1

DISPY:MOV DL,1

。。。。。。

NEXT1:

13.13.将数据段中首地址为ADDR、长度为N的一组数据加1,并送回原处。

MOV AX,-----

MOV DS,AX

MOV ES,-----

MOV SI,OFFSET ADDR

MOV------,SI

CLD

MOV CX,N

NEXT:--------

ADD AL,1

STOSB

LOOP NEXT

14.14.若定义如下数据段

DATA SEGMENT

ORG1000H

DAT1DB‘ABC’,-2,12H

DAT2DW3,‘AB’,$+4

DAT3DB2DUP(1,2,3DUP(?))

DATA ENDS

试写出下列指令执行后,AX=----,BX=--------,CX=--------。

MOV BX,DAT2+4

MOV CH,DAT3

MOV AX,WORD PTR[DAT1+2]

MOV CL,LENGTH DAT3

SHL AX,CL

OR BX,0F000H

四.分析以下的汇编语言源程序。

1)tack segment stack

Dw256dup(?)

Stack ends

Data segment

Da1dw-1,-3,5,6,9

Rs dw?

Data ends

Code segment

Assume cs:code,ss:stack,ds:data

Start:mov ax,data

Mov ds,ax

Mov bx,offset da1;BX的含义是:________________

Mov cx,(rs-da1)/2;CX的含义是:________________

Mov dx,0;DX的含义是:________________ Lop1:mov ax,[bx];指令①