汇编语言程序设计答案(6)

2025-07-12

exit:ret code ends

end main

(2)code segment

assume cs:code main proc far push ds sub ax,ax push ax mov bx,1

mov ax,0

mov cx,99 a:add ax,bx inc bx cmp bx,101 jnz a exit:ret main endp code ends end main

6.6 打印下面图形。 * ** *** **** ***** ******

答:code segment

assume cs:code main proc far push ds sub ax,ax push ax mov ax,1 a:mov cx,ax b:mov ah,2

mov dl,’*’ int 21h loop b cmp ax,6 jz exit inc ax mov ah,2

mov dl,13 int 21h mov ah,2 mov dl,10 int 21h jmp a

exit:ret code ends

end main

6.7 求已知带符号数字节数组ARRAY的平均值,ARRAY的首字节单元为数组元素的个数。 答:

data segment

ARRAY db 5,01,12,23,45,F3 data ends

code segment

assume cs:code start:

mov ax,data

mov ds,ax mov ax,0 mov cl,array mov ch,0 mov bl,cl lea si,array+1

a:add al,array[si] inc si loop a div bl

exit:mov ah,4ch int 21h code ends

end start

6.8 编写程序,如果输入的是大写字母,则输出对应的小写字母;如果输入的是小写字母,则输出对应的大写字母;如果输入的是数字,原样输出;按回车结束。 答:code segment

assume cs:code start:

mov ah,1 int 21h cmp al,30h

jb exit cmp al,3Ah jb num cmp al,41h jb exit cmp al,5Bh jb large

cmp al,61h

jb exit cmp al,7ah ja exit

sub al,20h

jmp num large: add al,20h jmp num num: mov dl,al

mov ah,2 int 21h

exit:mov ah,4ch int 21h code ends

end start

6.9 编写程序,实现对无符号字数组ARRAY的6个元素从小到大排序。 答: data segment

array dw 6,5,9,4,5,15,3 ;首地址单元6为元素个数 data ends code segment

assume cs:code,ds:data start:

mov ax, data mov ds, ax mov di, array k1: mov cx, di mov bx,0

k2: mov ax, array[bx] cmp ax, array[bx+2] jl next

xchg ax,array[bx+2] mov array[bx],ax next: add bx,2 loop k2 dec di jnz k1

mov ah,4ch int 21h code ends

end start

6.10 数据段有两个等长的字数组,分别求出各自的元素之和,并存入元素后面的单元中,即横向相加。再求出两个数组的对应元素之和,并把和存入新数组SUM中,即纵向相加。 答:data segment

Array1 dw 3, 1,0,1,? Array2 dw 3,1,1,0,?

Array3 dw 3,3 dup (0) data ends code segment

assume cs:code,ds:data start:

mov ax, data mov ds, ax mov ax, 0

lea bx, array1+2 mov cx, array1 sumh1: add ax, [bx] add bx,2 loop sumh1 mov [bx],ax ;第二个数组累加

mov ax, 0

lea bx, array2+2 mov cx, array2 sumh2: add ax, [bx] add bx,2 loop sumh2 mov [bx],ax

lea bx,2

mov cx, array2

sum3: mov ax, array1[bx]

add ax, array2[bx]

mov array3[bx],ax

add bx,2

loop sum3 exit: mov ah,4ch int 21h code ends end start

;设简单数据,第一个为元素个数 array1,2的和 ;存放

6.11 编写程序,比较两个从键盘输入的字符串是否相同,如果相同,则显示 ‘YES’,如果不同,则显示发现不同的字符位置。 答:data segment

mess1 db 13,10, 'input string1:$' mess2 db 13,10, 'input string2:$' mess3 db 13,10, 'YES!$'

mess4 db 13,10, 'no match at $'

st1 label byte max1 db 6 act1 db ?

stok1 db 6 dup(?)

st2 label byte max2 db 6 act2 db ?

stok2 db 6 dup(?) data ends

code segment

assume cs:code, ds:data,es:data start: mov ax,data mov ds,ax mov es,ax lea dx,mess1 mov ah,09

int 21h ;qust1? lea dx,st1 mov ah,0ah

int 21h ;ans1 lea dx,mess2 mov ah,09

int 21h ;qust2? lea dx,st2 mov ah,0ah

int 21h ;ans2 mov cl,act1 mov dl,act2 cmp cl,dl jnz nomatch mov ch,0 lea si,stok1 lea di,stok2


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

下一篇:2024年西交《高等数学(专升本)》在线作业

相关阅读
本类排行
× 游客快捷下载通道(下载后可以自由复制和排版)

下载本文档需要支付 7

支付方式:

开通VIP包月会员 特价:29元/月

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