龚汇编习题解答5Word文档下载推荐.docx

上传人:b****1 文档编号:5836552 上传时间:2023-05-05 格式:DOCX 页数:16 大小:19.57KB
下载 相关 举报
龚汇编习题解答5Word文档下载推荐.docx_第1页
第1页 / 共16页
龚汇编习题解答5Word文档下载推荐.docx_第2页
第2页 / 共16页
龚汇编习题解答5Word文档下载推荐.docx_第3页
第3页 / 共16页
龚汇编习题解答5Word文档下载推荐.docx_第4页
第4页 / 共16页
龚汇编习题解答5Word文档下载推荐.docx_第5页
第5页 / 共16页
龚汇编习题解答5Word文档下载推荐.docx_第6页
第6页 / 共16页
龚汇编习题解答5Word文档下载推荐.docx_第7页
第7页 / 共16页
龚汇编习题解答5Word文档下载推荐.docx_第8页
第8页 / 共16页
龚汇编习题解答5Word文档下载推荐.docx_第9页
第9页 / 共16页
龚汇编习题解答5Word文档下载推荐.docx_第10页
第10页 / 共16页
龚汇编习题解答5Word文档下载推荐.docx_第11页
第11页 / 共16页
龚汇编习题解答5Word文档下载推荐.docx_第12页
第12页 / 共16页
龚汇编习题解答5Word文档下载推荐.docx_第13页
第13页 / 共16页
龚汇编习题解答5Word文档下载推荐.docx_第14页
第14页 / 共16页
龚汇编习题解答5Word文档下载推荐.docx_第15页
第15页 / 共16页
龚汇编习题解答5Word文档下载推荐.docx_第16页
第16页 / 共16页
亲,该文档总共16页,全部预览完了,如果喜欢就下载吧!
下载资源
资源描述

龚汇编习题解答5Word文档下载推荐.docx

《龚汇编习题解答5Word文档下载推荐.docx》由会员分享,可在线阅读,更多相关《龚汇编习题解答5Word文档下载推荐.docx(16页珍藏版)》请在冰点文库上搜索。

龚汇编习题解答5Word文档下载推荐.docx

ax,cl

al,0FH

BYTE 

PTR 

x[si],al

pop 

add 

si,2

Loop 

lop

al,[X]

bl,[X+2]

cl,[X+4]

dl,[X+6]

ah,02H

int 

21H

dl,al

dl,bl

dl,cl

exit:

ret

ENDP

END 

start

5.3试编写一程序,要求比较两个字符串STRING1和STRING2所含字符是否相同,若相同则显示MATCH,若不相同则显示NOMATCH。

data 

segment 

 

string1 

db 

"

111111111"

13,10,"

$"

string2 

222222222"

inf1 

match!

inf2 

no 

ends

code 

segment

main 

proc 

far

assume 

ds:

data,cs:

code,es:

code

ds

ax,0

ax

ax,data

ds,ax

es,ax

lea 

si,string1

di,string2

cx,9

repz 

cmpsb

jz 

match

dx,inf2

jmp 

disp

match:

dx,inf1

disp 

:

ah,09

21h

endp

end 

start 

5.4试编写一程序,要求能从键盘接收一个个位数N,然后响铃N次(响铃的ASCII码为07H)。

far

sub 

ax,ax

ah,01H

cmp 

al,20H

je 

exit

al,30H

jle 

input

al,3AH

jge 

cx,ax

cx,0FFH

dl,07H

ah,2H

loop 

exit 

endp

5.5编写程序,将一个包含有20个数据的数组M分成两个数组:

正数数组P和负数数组N,并分别把这两个数组中数据的个数显示出来。

DATASEGMENT 

BUFDB-32, 

25, 

36, 

-18, 

-64, 

0, 

-3 

COUNTEQU$ 

BUF 

PLUSDB?

;

 

存放正数 

MINUSDB?

存放负数 

DATAENDS 

CODESEGMENT 

ASSUMECS:

CODE,DS:

DATA 

START:

MOVAX,DATA 

MOVDS,AX 

MOVBL,0;

负数个数 

MOVDL,0;

正数个数 

MOVSI,OFFSETBUF;

首地址 

MOVCX,COUNT;

循环次数 

LOP1:

MOVAL,[SI];

取第一个数 

CMPAL,0;

和0比较 

JGENEXT0;

大于等于0, 

转 

INCBL;

小于0, 

BL加1 

JMPNEXT1;

NEXT1 

NEXT0:

INCDL;

大于等于0, 

DL加1 

NEXT1:

INCSI;

指针增1 

DECCX;

循环次数减1 

JNZLOP1;

CX不等于0, 

转回 

MOVMINUS,BL;

存储负数个数 

MOVPLUS,DL;

存储正数个数 

CODEENDS 

ENDSTART 

5.6试编写一汇编语言程序,要求从键盘接收一个4位的十六进制数,并在终端上显示与它等值的二进制数。

stackssegmentstack

sdb20dup(0)

stacksends

datasegment

nequ4

chardbn+1;

输入内存字符

db0

dbn+1dup(0)

inputdb'

Inputthenumber:

'

0dh,0ah,'

$'

enterdb0dh,0ah,'

outputdb'

Resultis:

dataends

codesegment

assumecs:

code,ss:

stacks,ds:

data

movax,data

movds,ax

leadx,input

movah,9

int21h

leadx,char

movah,0ah

leadx,enter

movsi,2

movcx,4

l0:

movbl,char[si]

cmpbl,30h

jbstart

cmpbl,39h

jbel00

cmpbl,61h

cmpbl,66h

jastart

subbl,57h

jmpl333

l00:

subbl,30h

l333:

movchar[si],bl

incsi

deccx

jnzl0

leadx,output

l000:

movbl,char[si]

movch,4

movcl,4

shlbl,cl

ll00:

testbl,80h

jnzl1

movdl,'

0'

movah,2

jmpl2

l1:

movdl,'

1'

l2:

shlbl,1

decch

jnzll00

cmpsi,6

jnel000

movah,4ch

codeends

endstart

5.7设有一段英文,其字符变量名为ENG,并以$字符结束。

试编写一程序,查对单词SUN在该文中的出现次数,并以格式“SUNXXXX”显示出次数。

mov 

Z,0

esi,ENG

lp1:

lodsb

lp2:

al,"

toQuit

S"

jnz 

lp1

U"

lp2

N"

inc 

Z

toQuit:

5.8有一个首地址为MEM的100D字数组,试编制程序删除数组中所有为零的项,并将后续项向前压缩,最后将数组的剩余部分补上零。

stack 

.data

mem 

dw 

12,0,0,0,0,0,1,2,3,6,4,7,8,2,1,0,0,54,5,0,2,4,7,8,0,5,6,2,1,4,8,5,1,45,7,5,1,2,0,2,4,0,2,54,0,12,0,0,0,0,0,1,2,3,6,4,7,8,2,1,0,0,54,5,0,2,4,7,8,0,5,6,2,1,4,8,5,1,45,7,5,1,2,0,2,4,0,2,54,0,45,7,5,1,2,0,2,4,0,2

ax,0

ax,@data

ds,ax

----------------------

ax,0H

bx,64H

cx,64H

si,0FFFEH

repeat:

ADD 

si,2H

MEM[si],0H

JE 

calls

repeat

calls:

INC 

call 

sort

ax,1H

lastValue

DEC 

lastValue:

mem[bx],0H

sort 

NEAR

si

s:

dx,mem[si]

mem[si+2],dx

s

return:

5.9在STRING到STRING+99单元中存放着一个字符串,试编制一程序测试该字符串中是否存在数字。

如有,则把CL的第5位置1,否则将该位置0。

XOREBX,EBX

MOVESI,OFFSETSTRING

MOVECX,99

START_LOOP:

LODSB

CMPAL,'

JCLOOP_NEXT

9'

JNCLOOP_NEXT

ORBL,10H

LOOP_NEXT:

LOOPSTART_LOOP

MOVCL,BL

5.10在首地址为TABLE的数组中按递增次序存放着100H个16位补码数。

试编写一个程序把出现次数最多的数及其出现次数分别存放于AX和CX中。

datasegment 

Tabledw 

0,1,2,3,4,5,6,7,8,9,0,1,2,3,4,5,6,7,8,9 

dw 

5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,-1,-1 

Resultdw 

0,0,0,0 

data 

ends 

code 

segment 

assume 

cs:

code,ds:

data 

start:

mov 

ax, 

movds, 

ax 

------------------------------- 

movsi, 

offset 

Table 

movax, 

[si] 

ax存放最大数 

movbx, 

bx存放最小数 

movcx, 

199 

循环199次 

@C001:

incsi 

movdx, 

cmpdx, 

jg@C002 

bx 

jl@C003 

jmp@C004 

@C002:

dx 

@C003:

@C004:

loop@C001 

保存结果 

movResult, 

movResult+2, 

200 

@C005:

xordx, 

pushcx 

movdi, 

@C006:

[di] 

cmpax, 

jnz@C007 

incdx 

@C007:

incdi 

loop@C006 

popcx 

Result+6 

jle@C008 

movResult+4, 

movResult+6, 

@C008:

loop@C005 

ax,4c00h 

int 

21h 

end 

start 

最后结果 

Result 

9, 

-1, 

5, 

36

5.11试编制一个程序,把AX中的十六进制数转换为ASCII码,并将对应的ASCII码依次存放到MEM数组中的4个字节中。

例如,当(AX)=2A49H时,程序执行完后,MEM中的4个字节内容分别为39H,34H,41H和32H。

segment

Y'

'

N'

ends

cs:

code,ds,data

ax,data

ah,01

21h

al,'

a'

ja 

abc

abc:

z'

jb 

abc1

abc1:

dl,offset 

x

ah,9

ret 

A'

ab

ab:

Z'

ab1

ab1:

ac

ac:

y

ah,4ch

5.12已知数组A包含15个互不相等的整数,数组B包含20个互不相等的整数。

试编制一程序,把既在A中又在B中出现的整数存放于数组C中。

DATA 

SEGMENT

DB1,3,4,6,10,12,15,21,33,2,40,42,46,48,55

DB2,3,6,21,33,41,55,88,8,66,21,10,22,23,56,48,50,51,89,100

DB15DUP(?

ENDS

CODE 

ASSUMEDS:

DATA,CS:

CODE

START:

MOV 

AX,DATA

DS,AX

LEA 

SI,A

BX,Z

CX,15

CLD

LOP1:

LODSB

PUSH 

CX(保存外环CX)

CX,20(内环次数)

DI,B(每次内环完,重新赋值)

LOP2:

CMP 

AL,[DI]

LOP3(相等,退出内环)

DI

LOOP 

LOP2

JMP 

LOP4(内环完毕而没有相等的就直接到外环)

LOP3:

[BX],AL

BX

LOP4:

POP 

CX(外环出栈)

LOP1

AH,4CH

INT 

21H

START

5.13从键盘输入一系列字符(以回车符结束),并按字母、数字及其他字符分类计数,最后显示出这三类的计数结果。

datarea 

count 

0,0,0 

分别存放字母、字母和其他字符的个数 

datarea 

main 

proc 

far 

push 

ds 

sub 

ax,ax 

push 

ax,datarea 

dx,ax 

next:

ah,01 

判断是否为字母 

cmp 

al,0dh 

jz 

exit 

al,5ah 

jg 

other 

al,41h 

jl 

shuzi 

add 

count[0],1 

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 小学教育 > 学科竞赛

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2