汇编语言习题-测验题答案(6)

2019-01-27 11:38

MOV AH,2 INT 21H INC BL

LOOP REPT1 MOV AH,4CH INT 21H

CODE ENDS END START

编程。比较两个字符串是否相同,统计并显示出相同的字符个数和不同的字符个数。

data segment

bunch1 db 'stadent' bunch2 db 'studEnt' data ends code segment

assume cs:code,ds:data,es:data start:

mov ax,data mov ds,ax mov es,ax lea si,bunch1 lea di,bunch2 mov bx,0 ;bh=相同的个数,bl=不同的个数 mov cx,7 let1:

mov al,[si] cmp al,[di] ;两字符比较 jz equl ;相同转equl inc bl ;不同bl加1 jmp out1 equl: inc bh out1:inc si inc di loop let1 mov dl,'n' ;显示'n',代表不同 mov ah,2h int 21h

add bl,30h ;加上ASCII码 mov dl,bl ;显示不同的个数 int 21h

mov dl,'e' ;显示'e',代表相同 int 21h add bh,30h mov dl,bh ;显示相同的个数 int 21h mov ah,4ch int 21h code ends

26

6.19

end start

6.21 STRI单元存有10个字符的字符串,以0结尾,编程去掉其中的空格符,并将后续字符向前递补。 DATA SEGMENT STR DB ‘SDABF G H0’ DATA ENDS CODE SEGMENT ASSUME CS:CODE,DS:DATA

START:MOV AX,DATA MOV DS,AX LEA DI,STR

SPACE:MOV CX,10 MOV AL,[DI] CMP AL,0 JE OUT CMP AL,20H JE DELETE JMP EXIT

SUB CX,DI MOV SI,DI

DELETE:

MOV BL,[SI+1]

MOV [SI],BL INC SI LOOP DELETE EXIT:JMP SPACE OUT:MOV AH,4CH INT 21H CODE ENDS END START

6.23 将内存中用ASCII码表示的100以内的十进制数转变为二进制数。十进制数不够3位以20H(空格)补齐。

设计思路:

(1) 用EQU伪指令获得需转换的十进制数的个数;

(2) 用双重循环。外循环控制个数,用x作为中间变量;

(3) 内循环将一个3位十进制数去掉ASCII码后按位数扩大10倍再相加,保存后即存储为

二进制数;

(4) 分两个数组保存ASCII码表示的十进制数和转换后的二进制数。 程序如下:

; 6-23.asm 将内存中用ASCII码表示的100以内的十进制数转变为二进制数 data segment

score1 db 36h,37h,20h,31h,30h,30h,38h,35h,20h,31h,30h,30h ;即67,100,85,100 x dw ?

n equ 3 ;三位数

num equ (x-score1)/n ;十进制数个数

27

score2 dw num dup(0) data ends code segment

assume cs:code,ds:data start: mov ax,data mov ds,ax mov cx,num mov si,-2 mov bx,0

rept1: push cx mov cx,n

rept2: mov al,score1[bx] cmp al,30h jl exit cmp al,39h jg exit

and ax,000fh xchg ax,x mov dx,10 mul dx xchg ax,x

add x,ax exit: inc bx loop rept2

pop cx add si,2 mov ax,x

mov score2[si],ax mov x,0 loop rept1 mov ah,4ch int 21h code ends

end start

;保存转换后的二进制数

;保存外循环次数 ;从score1取数 ;判断是否0-9

;去掉ASCII码

;将ax中前一次形成的数扩大10倍

;相加后保存到x ;取下一位数 ;弹出外循环次数

;转换后的数据保存到score2

运行结果:

可以看到,67转换为0043,100转换为0064,85转换为0055。在DEBUG下显示的内存单元是十六进制表示,实际存储的是二进制数。

测验六

单选题:

1.下列描述错误的是 。

A.LOOP指令以CX为循环控制计数器

B.LOOPE指令循环的条件是CX≠0且ZF=0

28

C.LOOPE指令循环的条件是CX≠0且ZF=1 D.LOOPNE指令循环的条件是CX≠0且ZF=0

2.串处理操作需要循环重复执行,________不能出现在串处理指令中。

A.REP B.REPZ C.REPNZ D.LOOP

3. 对于LOOP LET1循环指令,构成循环的范围是________。

A.在-128字节之内 B.在+127字节之内 C.在-128~+127字节之间 D.在-256~+255字节之间 4.在串传送指令中,串的转送方向由________标志位决定。

A.DF B.CF C.ZF D.OF

5.串传送指令中,源串和目的串的偏移地址由________寄存器指出。 A.BX和DX B.DS和DX C.SI和DI D.SI和CX 6.串扫描SCAS指令要求目的串放在________中。

A.数据段 B.代码段 C.堆栈段 D.附加段 7.串扫描SCASW指令隐含地将______寄存器作为查找的内容。 A.AX B.BX C.CX D.AL 8.循环指令LOOP可以实现________的循环。

A.循环次数已知 B.循环次数未知 C.循环次数累加 D.循环次数不变

9. LOOPNE指令的循环计数值放在________寄存器中。

A.CL B.BX C.CX D.IP

10.在多重循环程序中,从外循环再次进入内循环时,内循环的计数值________。

A.不必考虑 B.重新赋值 C.置0 D.置1

11.循环指令的控制条件除CX寄存器之外,还可把标志位________作为控制条件。A.CF B.SF C.ZF D.OF 12.循环指令LOOPNZ终止循环的条件是________。

A.CX=0且ZF=0 B.CX=0或ZF=1 C.CX≠0且ZF=0 D.CX≠0或ZF=0 13.下列指令不能构成循环的是_______。 A.JMP B.JNZ C.LOOP D.DEC CX

14.串传送指令MOVSW,执行CLD指令后,每传送一次,串的_______。 A.偏移地址+1 B.偏移地址+2 C.偏移地址-1 D.偏移地址-2 15.在串处理指令中,设置方向标志为1的指令是_______。 A.STD B.CLD C.HLT D.CWD

测验六答案:

1~5 BDAAC 6~10 DAACB 11~15 CBDBA

习题七

7.1 在汇编语言中,主程序是如何调用子程序的?

7.2 怎样才能正确地从子程序返回到主程序,先决条件是什么? 7.3 子程序名代表什么含义?子程序名是断点吗?为什么?

7.4 什么叫做跨段调用?从子程序调用指令CALL中能得知是跨段调用吗? 7.5 CALL指令如何将断点入栈保存的?

7.6 RET指令在何处使用?RET指令执行了哪些操作?

29

7.7 CALL指令为什么必须和RET指令成对使用? 7.8 为什么要用过程定义伪指令PROC来定义子程序? 7.9 子程序的属性是如何确定的?

7.10 为什么要进行现场保护?怎样做现场保护?

7.11 有哪几种常用的子程序参数传递方法?分别写出各自的特点。 7.12 阅读下列子程序,解释该程序的功能。 SUBR1 PROC NEAR PUSH AX PUSH BX MOV AL,X ADD AL,BL MOV Y,AL POP BX POP AX RET SUBR1 ENDP

7.13 解释下列子程序的功能。 SUBR2 PROC NEAR MOV SI,0 LET1: MOV AH,1

INT 21H

CMP AL,0DH JZ OUT1

MOV KEY[SI],AL INC SI JMP LET1

OUT1: RET SUBR2 ENDP

7.14 给出下列子程序的功能和执行结果。 X DB 3AH

??

SUBR3 PROC NEAR

MOV AL,X MOV BL,10 MOV DX,0 LETE : MOV AH,0

DIV BL

MOV DL,AH

PUSH DX CMP AL,0 JNZ LETE RET SUBR3 ENDP

7.15 写出子程序,从键盘输入一位十进制数,并保存到BUFFER单元中。

7.16 写出子程序,从键盘输入一个多位十进制数,并分别保存到BUFFER开始的单元中。7.17 从键盘输入多位数字,转换成十进制数并保存到X单元中。 7.18 写出求数组元素累加和的子程序。

30


汇编语言习题-测验题答案(6).doc 将本文的Word文档下载到电脑 下载失败或者文档不完整,请联系客服人员解决!

下一篇:工业机器人课程论文

相关阅读
本类排行
× 注册会员免费下载(下载后可以自由复制和排版)

马上注册会员

注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信: QQ: