45fan.com - 路饭网

搜索: 您的位置主页 > 网络频道 > 阅读资讯:汇编上机题大全

汇编上机题大全

2016-08-29 08:51:47 来源:www.45fan.com 【

汇编上机题大全

u.################11.13

输入三个十进制数,输入输出有提示,单独占一行

1.十进制输出三个数的平均值

2.十进制输出最大数

3.将三个数由大到小排列,十进制输出,中间用空格分开

data segment

mess1 db 'please input 3 dec number:',0ah,0dh,'$'

mess2 db 'the max number is:','$'

mess3 db 'the avg number is:','$'

mess4 db 'from big to small is:','$'

num db 3 dup(?)

temp db ?

flag db 0

data ends

code segment

assume cs:code,ds:data

start:mov ax,data

mov ds,ax

lea dx,mess1

call prompt

mov cl,3

lea si,num

kk: call putindec

call crlf

mov [si],bl

inc si

loop kk

lea dx,mess2

call prompt

mov cl,3

lea si,num

mov al,[si]

ppp1: cmp al,[si+1]

ja ppp

mov al,[si+1]

ppp: inc si

loop ppp1

mov bl,al

call putoutdec

call crlf

lea dx,mess3

call prompt

mov cl,3

lea si,num

mov al,[si]

uuu1: add al,[si+1]

inc si

loop uuu1

mov ah,0

mov bh,3

div bh

mov bl,al

call putoutdec

call crlf

lea dx,mess4

call prompt

mov cl,2

aaa3: mov bl,cl

lea si,num

aaa2: mov al,[si]

cmp al,[si+1]

ja aa

xchg al,[si+1]

mov [si],al

aa: inc si

loop aaa2

mov cl,bl

loop aaa3

lea si,num

mov cl,3

ll: mov bl,[si]

inc si

call putoutdec

call whitespace

loop ll

jmp exit

prompt proc

mov ah,9

int 21h

ret

prompt endp

crlf proc

mov dl,0ah

mov ah,2

int 21h

mov dl,0dh

mov ah,2

int 21h

ret

crlf endp

whitespace proc

mov dl,20h

mov ah,2

int 21h

ret

whitespace endp

putindec proc

mov bl,0

rr: mov ah,1

int 21h

cmp al,0dh

je putinexit

sub al,30h

mov ah,0

xchg al,bl

mov bh,10

mul bh

xchg al,bl

add bl,al

jmp rr

putinexit:ret

putindec endp

putoutdec proc

cmp bl,100

jb pp

mov flag,1

mov al,bl

mov ah,0

mov bh,10

div bh

mov bl,al

mov temp,ah

pp: cmp bl,10

jb pp1

mov al,bl

mov ah,0

mov bh,10

div bh

mov bl,ah

mov dl,al

add dl,30h

mov ah,2

int 21h

pp1: mov dl,bl

add dl,30h

mov ah,2

int 21h

mov dl,temp

cmp flag,0

jne pp3

cmp dl,0

je pp2

pp3: add dl,30h

mov ah,2

int 21h

pp2: ret

putoutdec endp

exit: mov ah,4ch

int 21h

code ends

end start

t.################10.31

输入7个十进制数(0-255)

1.输出提示信息

2.求这7个数中的最大,最小和平均数值,以十进制格式输出

3.求这7个数中从大到小的第四个数,以十进制格式输出

4.比较平均和第四个数的大小,以十进制格式输出较大的数

data segment

mess1 db 'please input 7 dec number(0~30):',0ah,0dh,'$'

mess2 db 'the max,min,avg is:','$'

mess3 db 'from big to small of the fourth number:','$'

mess4 db 'the biger between the fourth and avg:','$'

num db 7 dup(?)

temp db ?

flag db 0

avg db ?

fourth db ?

data ends

code segment

assume cs:code,ds:data

start:mov ax,data

mov ds,ax

lea dx,mess1

call prompt

mov cl,7

lea si,num

kk: call putindec

call crlf

mov [si],bl

inc si

loop kk

lea dx,mess2

call prompt

mov cl,6

lea si,num

mov al,[si]

ppp1: cmp al,[si+1]

ja ppp

mov al,[si+1]

ppp: inc si

loop ppp1

mov bl,al

call putoutdec

call whitespace

mov cl,6

lea si,num

mov al,[si]

qqq1: cmp al,[si+1]

jb qqq

mov al,[si+1]

qqq: inc si

loop qqq1

mov bl,al

call putoutdec

call whitespace

mov cl,6

lea si,num

mov al,[si]

uuu1: add al,[si+1]

inc si

loop uuu1

mov ah,0

mov bh,7

div bh

mov avg,al

mov bl,al

call putoutdec

call crlf

lea dx,mess3

call prompt

mov cl,6

aaa3: mov bl,cl

lea si,num

aaa2: mov al,[si]

cmp al,[si+1]

ja aa

xchg al,[si+1]

mov [si],al

aa: inc si

loop aaa2

mov cl,bl

loop aaa3

lea si,num

mov bl,[si+3]

mov fourth,bl

call putoutdec

call crlf

lea dx,mess4

call prompt

mov al,avg

mov bl,fourth

cmp al,bl

ja ww

mov bl,fourth

call putoutdec

jmp exit

ww: mov bl,avg

call putoutdec

jmp exit

prompt proc

mov ah,9

int 21h

ret

prompt endp

crlf proc

mov dl,0ah

mov ah,2

int 21h

mov dl,0dh

mov ah,2

int 21h

ret

crlf endp

whitespace proc

mov dl,20h

mov ah,2

int 21h

ret

whitespace endp

putindec proc

mov bl,0

rr: mov ah,1

int 21h

cmp al,0dh

je putinexit

sub al,30h

mov ah,0

xchg al,bl

mov bh,10

mul bh

xchg al,bl

add bl,al

jmp rr

putinexit:ret

putindec endp

putoutdec proc

cmp bl,100

jb pp

mov flag,1

mov al,bl

mov ah,0

mov bh,10

div bh

mov bl,al

mov temp,ah

pp: cmp bl,10

jb pp1

mov al,bl

mov ah,0

mov bh,10

div bh

mov bl,ah

mov dl,al

add dl,30h

mov ah,2

int 21h

pp1: mov dl,bl

add dl,30h

mov ah,2

int 21h

mov dl,temp

cmp flag,0

jne pp3

cmp dl,0

je pp2

pp3: add dl,30h

mov ah,2

int 21h

pp2: ret

putoutdec endp

exit: mov ah,4ch

int 21h

code ends

end start

s.################北大系统班“汇编语言”上机考试题

1.提示从键盘输入<80个字符的串提示语独占一行{必做}

2.以16进制输出字符串中非字母字符的个数(不是a to z and A to Z){必做}

3.把字串中的大写字母变为小写并输出{选做}

4.找到输入的串中的字符中Asscii 码值最大的 Asscii 码以16进制输出{选做}

data segment

aa db 'please input some (<80)',0ah,0dh,'$'

bb db 'the tatal of no char num:','$'

cc db 'the convert:','$'

ee db 'the max ASCII number is: ','$'

num db 80

db ?

db 80 dup(?)

cou db 0

maxa db 0

data ends

code segment

assume cs:code,ds:data

start: mov ax,data

mov ds,ax

lea dx,aa

mov ah,09h

int 21h

lea dx,num

mov ah,0ah

int 21h

call crlf

lea dx,bb

mov ah,09h

int 21h

lea si,num+2

mov bl,0

mov cl,num+1

q: mov al,[si]

inc si

cmp al,'A'

jb pp

cmp al,'Z'

jb pp1

cmp al,'a'

jb pp

cmp al,'z'

jb pp1

pp: inc cou

pp1: loop q

exit: mov al,cou

mov bh,cou

mov cl,4

shr al,cl

cmp al,10

jb kk1

add al,7

kk1: add al,30h

mov dl,al

mov ah,2

int 21h

and cou,0fh

cmp cou,10

jb kk2

add cou,7

kk2: add cou,30h

mov dl,cou

mov ah,02h

int 21h

call crlf

lea dx,cc

mov ah,09h

int 21h

mov si,0

lea si,num+2

mov cl,num+1

call convert

lea dx,ee

mov ah,09h

int 21h

mov si,0

mov al,0

lea si,num+2

mov cl,num+1

mov bl,[si]

ll: inc si

cmp bl,[si]

ja gg

mov bl,[si]

gg: mov maxa,bl

mm: loop ll

mov al,bl

mov cl,4

shr al,cl

call vv

jmp xx

vv proc

cmp al,10

jb uu

add al,07h

uu: mov dl,al

add dl,30h

mov ah,02h

int 21h

ret

vv endp

xx: and bl,0fh

mov al,bl

call vv

jmp oo

convert proc

qq: mov al,[si]

cmp al,'A'

jb qq2

cmp al,'Z'

ja qq2

add al,20h

qq2:

mov dl,al

mov ah,02h

int 21h

inc si

loop qq

call crlf

ret

convert endp

crlf proc

mov dl,0ah

mov ah,02h

int 21h

mov dl,0dh

mov ah,02h

int 21h

ret

crlf endp

oo: mov ah,4ch

int 21h

code ends

end start

r.################10月30日模拟练习题

输入一个数(0~255)

1.输入输出提示

2.若能除以15,则yes,否no

3.以十进制输出商

4.以二进制输出余数

data segment

mess1 db 'please input a dec number:',0dh,0ah,'$'

mess2 db 'wheather div 15:','$'

mess3 db 'yes',0ah,0dh,'$'

mess4 db 'no',0ah,0dh,'$'

mess5 db 'shang:','$'

mess6 db 'yun:','$'

shang db ?

yun db ?

nozero db 0

data ends

code segment

assume cs:code,ds:data

start:mov ax,data

mov ds,ax

lea dx,mess1

call prompt

mov bl,0

pp: mov ah,1

int 21h

cmp al,0dh

je putinexit

sub al,30h

mov ah,0

xchg al,bl

mov bh,10

mul bh

xchg al,bl

add bl,al

jmp pp

putinexit:call crlf

lea dx,mess2

call prompt

mov al,bl

mov ah,0

mov bh,15

div bh

mov shang,al

mov yun,ah

cmp ah,0

je pp1

lea dx,mess4

call prompt

lea dx,mess5

call prompt

mov bl,shang

call putoutdec

call crlf

lea dx,mess6

call prompt

mov bl,yun

call putoutbin

jmp exit

pp1: lea dx,mess3

call prompt

lea dx,mess5

call prompt

mov bl,shang

call putoutdec

call crlf

lea dx,mess6

call prompt

mov dl,0

add dl,30h

mov ah,2

int 21h

jmp exit

prompt proc

mov ah,9

int 21h

ret

prompt endp

crlf proc

mov dl,0dh

mov ah,2

int 21h

mov dl,0ah

mov ah,2

int 21h

ret

crlf endp

putoutdec proc

cmp bl,10

jb ww

mov al,bl

mov ah,0

mov bh,10

div bh

mov bl,ah

mov dl,al

add dl,30h

mov ah,2

int 21h

ww: mov dl,bl

add dl,30h

mov ah,2

int 21h

ret

putoutdec endp

putoutbin proc

mov cl,8

hh: mov dl,0

test bl,80h

je hh1

mov dl,1

mov nozero,1

jmp hh2

hh1:

cmp nozero,0

je hh3

hh2: add dl,30h

mov ah,2

int 21h

hh3: shl bl,1

loop hh

ret

putoutbin endp

exit:mov ah,4ch

int 21h

code ends

end start

q.################11月2日模拟练习题

输入两个数(0~255)

1.以十进制输出和

2.若和为偶数,则yes,否no

3.以二进制输出两个数中大者

data segment

mess1 db 'please input 2 dec number:',0ah,0dh,'$'

mess2 db 'the sum is:','$'

mess3 db 'wheather the sum is even:','$'

mess4 db 'yes',0ah,0dh,'$'

mess5 db 'no',0ah,0dh,'$'

mess6 db 'the bigger in two number:','$'

num1 db ?

num2 db ?

sum db ?

temp db ?

flag db 0

nozero db 0

data ends

code segment

assume cs:code,ds:data

start:mov ax,data

mov ds,ax

lea dx,mess1

call prompt

call putindec

mov num1,bl

call crlf

call putindec

mov num2,bl

call crlf

lea dx,mess2

call prompt

mov bl,num1

add bl,num2

mov sum,bl

call putoutdec

call crlf

lea dx,mess3

call prompt

mov al,sum

mov ah,0

mov bh,2

div bh

cmp ah,0

je kk

lea dx,mess5

call prompt

jmp kk1

kk: lea dx,mess4

call prompt

kk1: lea dx,mess6

call prompt

mov bl,num1

cmp bl,num2

ja kk2

mov bl,num2

kk2: call putoutbin

jmp exit

prompt proc

mov ah,9

int 21h

ret

prompt endp

crlf proc

mov dl,0ah

mov ah,2

int 21h

mov dl,0dh

mov ah,2

int 21h

ret

crlf endp

putindec proc

mov bl,0

qqq: mov ah,1

int 21h

cmp al,0dh

je putinexit

sub al,30h

mov ah,0

xchg al,bl

mov bh,10

mul bh

xchg al,bl

add bl,al

jmp qqq

putinexit:ret

putindec endp

putoutdec proc

cmp bl,100

jb pp1

mov flag,1

mov al,bl

mov ah,0

mov bh,10

div bh

mov temp,ah

mov bl,al

pp1: cmp bl,10

jb pp2

mov al,bl

mov ah,0

mov bh,10

div bh

mov bl,ah

mov dl,al

add dl,30h

mov ah,2

int 21h

pp2: mov dl,bl

add dl,30h

mov ah,2

int 21h

mov dl,temp

cmp flag,0

jne pp3

cmp dl,0

je pp4

pp3: add dl,30h

mov ah,2

int 21h

pp4: ret

putoutdec endp

putoutbin proc

mov cl,8

aa1: mov dl,0

test bl,80h

je aa

mov nozero,1

mov dl,1

aa: cmp nozero,0

je aa2

add dl,30h

mov ah,2

int 21h

aa2: shl bl,1

loop aa1

ret

putoutbin endp

exit:mov ah,4ch

int 21h

code ends

end start

上面的五个程序就是从u-q的答案,程序我都是自己编过后调试成功的,如果你在使用时发现了什么问题请与我联系,祝你成功。

 

本文地址:http://www.45fan.com/a/question/69196.html
Tags: 汇编 集锦 上机
编辑:路饭网
关于我们 | 联系我们 | 友情链接 | 网站地图 | Sitemap | App | 返回顶部