
汇编语言的练习与答案..谢谢
1个回答
展开全部
汇编自考模拟题
1. 从键盘接受一个按键,如果按键是小写字母则输出“L”,是大写字母则输出“U”,都不是则输出“*”。(要求在屏幕上输出)
2.存储器的一个数据区中定义10个无符号数,(设10个数为:34,13,89,25,45,33,1,55,127,47)要求找出最大值和最小值,保存到max和mix中。
3.在屏幕上显示如下由数字拼成的形状:1 2 3 4 5 6
2 3 4 5 6 1
3 4 5 6 1 2
4 5 6 1 2 3
5 6 1 2 3 4
6 1 2 3 4 5
4.在存储器中自EE地址开始的连续20个单元的‘AB’转存到以FF地址开始的单元中去。
5.一个数据区的内容为:-23,-37,-43,11,58,-61,45,-47,80,-32(均为十进制数),求该数据区正数的个数并显示。
6.在一个字符串中查找一个特定字符“$” 并用“!”代替该字符。其字符串为“This is an example$”。
1. 从键盘接受一个按键,如果按键是小写字母则输出“L”,是大写字母则输出“U”,如果是数字则输出“N”,都不是则输出“*”。(要求在屏幕上输出)
code segment
assume cs:code
begin:mov ah,1
int 21h
cmp al,'A'
jb lab4
cmp al,'Z'
ja lab4
mov dl,'U'
jmp lab3
lab4: cmp al,'a'
jb lab1
cmp al,'z'
ja lab1
mov dl,'L'
jmp lab3
lab1: mov dl,'*'
lab3: mov ah,2
int 21h
mov ah,4ch
int 21h
code ends
end begin
2.存储器的一个数据区中定义10个无符号数,(设10个数为:34,13,89,25,45,33,1,55,127,47)要求找出最大值和最小值,保存到max和mix中。
data segment
buf db 10,34,13,89,25,45,33,1,55,127,47
min db ?
max db ?
data ends
code segment
assume cs:code,ds:data
star: mov ax,data
mov ds,ax
mov ch,0
mov cl,buf
dec cx
mov al,buf+1
mov max,al
mov min,al
mov bx,offset buf+2
last: mov al,[bx]
cmp al,max
jna last1
mov max,al
last1:cmp al,min
ja next
mov min,al
next: inc bx
loop last
mov ah,4ch
int 21h
code ends
end star
3.在屏幕上显示如下由数字拼成的形状: 1 2 3 4 5 6
2 3 4 5 6 1
3 4 5 6 1 2
4 5 6 1 2 3
5 6 1 2 3 4
6 1 2 3 4 5
code segment
assume cs:code
main:mov bl,0
lab1:mov cx,6
mov dl,'1'
add dl,bl
lab2:mov ah,2
int 21h
add dl,1
cmp dl,'6'
jbe lab3
mov dl,'1'
lab3:loop lab2
mov dl,13
int 21h
mov dl,10
int 21h
add bl,1
cmp bl,6
jb lab1
mov ah,4ch
int 21h
code ends
end main
4.在存储器中自EE地址开始的连续20个单元的‘AB’转存到以FF地址开始的单元中去。
data segment
EE dw 20 dup('AB')
data ends
extra segment
FF dW 20 dup('?')
extra ends
code segment
assume cs:code,ds:data,es:extra
start:mov ax,data
mov ds,ax
mov ax,extra
mov es,ax
lea si,EE
lea di,FF
cld
mov cx,20
rep movsw
mov ah,4ch
int 21h
code ends
end start
5.一个数据区的内容为:-23,-37,-43,11,58,-61,45,-47,80,-32(均为十进制数),求该数据区正数的个数并显示。
data segment
buf db -23,-37,-43,11,58,-61,45,-47,80,-32
data ends
code segment
assume cs:code,ds:data
star: mov ax,data
mov ds,ax
mov bx,0
mov si,offset buf
mov cx,10
lop: mov al,[si]
cmp al,0
jl pp2
inc bx
pp2: inc si
loop lop
mov al,bl
add al,30h
mov dl,al
mov ah,2
int 21h
mov ah,4ch
int 21h
code ends
end star
6.在一个字符串中查找一个特定字符“$” 并用“!”代替该字符。其字符串为“This is an example$”。
data segment
char equ '$'
buf db 16,'This an example$'
data ends
code segment
assume cs:code,ds:data,es:data
star: mov ax,data
mov ds,ax
mov es,ax
mov al,char
mov ch,0
mov cl,buf
mov di,offset buf+1
repne scasb
jz exit
exit: mov al,'!'
mov [di-1],al
mov ah,4ch
int 21h
code ends
end star
1. 从键盘接受一个按键,如果按键是小写字母则输出“L”,是大写字母则输出“U”,都不是则输出“*”。(要求在屏幕上输出)
2.存储器的一个数据区中定义10个无符号数,(设10个数为:34,13,89,25,45,33,1,55,127,47)要求找出最大值和最小值,保存到max和mix中。
3.在屏幕上显示如下由数字拼成的形状:1 2 3 4 5 6
2 3 4 5 6 1
3 4 5 6 1 2
4 5 6 1 2 3
5 6 1 2 3 4
6 1 2 3 4 5
4.在存储器中自EE地址开始的连续20个单元的‘AB’转存到以FF地址开始的单元中去。
5.一个数据区的内容为:-23,-37,-43,11,58,-61,45,-47,80,-32(均为十进制数),求该数据区正数的个数并显示。
6.在一个字符串中查找一个特定字符“$” 并用“!”代替该字符。其字符串为“This is an example$”。
1. 从键盘接受一个按键,如果按键是小写字母则输出“L”,是大写字母则输出“U”,如果是数字则输出“N”,都不是则输出“*”。(要求在屏幕上输出)
code segment
assume cs:code
begin:mov ah,1
int 21h
cmp al,'A'
jb lab4
cmp al,'Z'
ja lab4
mov dl,'U'
jmp lab3
lab4: cmp al,'a'
jb lab1
cmp al,'z'
ja lab1
mov dl,'L'
jmp lab3
lab1: mov dl,'*'
lab3: mov ah,2
int 21h
mov ah,4ch
int 21h
code ends
end begin
2.存储器的一个数据区中定义10个无符号数,(设10个数为:34,13,89,25,45,33,1,55,127,47)要求找出最大值和最小值,保存到max和mix中。
data segment
buf db 10,34,13,89,25,45,33,1,55,127,47
min db ?
max db ?
data ends
code segment
assume cs:code,ds:data
star: mov ax,data
mov ds,ax
mov ch,0
mov cl,buf
dec cx
mov al,buf+1
mov max,al
mov min,al
mov bx,offset buf+2
last: mov al,[bx]
cmp al,max
jna last1
mov max,al
last1:cmp al,min
ja next
mov min,al
next: inc bx
loop last
mov ah,4ch
int 21h
code ends
end star
3.在屏幕上显示如下由数字拼成的形状: 1 2 3 4 5 6
2 3 4 5 6 1
3 4 5 6 1 2
4 5 6 1 2 3
5 6 1 2 3 4
6 1 2 3 4 5
code segment
assume cs:code
main:mov bl,0
lab1:mov cx,6
mov dl,'1'
add dl,bl
lab2:mov ah,2
int 21h
add dl,1
cmp dl,'6'
jbe lab3
mov dl,'1'
lab3:loop lab2
mov dl,13
int 21h
mov dl,10
int 21h
add bl,1
cmp bl,6
jb lab1
mov ah,4ch
int 21h
code ends
end main
4.在存储器中自EE地址开始的连续20个单元的‘AB’转存到以FF地址开始的单元中去。
data segment
EE dw 20 dup('AB')
data ends
extra segment
FF dW 20 dup('?')
extra ends
code segment
assume cs:code,ds:data,es:extra
start:mov ax,data
mov ds,ax
mov ax,extra
mov es,ax
lea si,EE
lea di,FF
cld
mov cx,20
rep movsw
mov ah,4ch
int 21h
code ends
end start
5.一个数据区的内容为:-23,-37,-43,11,58,-61,45,-47,80,-32(均为十进制数),求该数据区正数的个数并显示。
data segment
buf db -23,-37,-43,11,58,-61,45,-47,80,-32
data ends
code segment
assume cs:code,ds:data
star: mov ax,data
mov ds,ax
mov bx,0
mov si,offset buf
mov cx,10
lop: mov al,[si]
cmp al,0
jl pp2
inc bx
pp2: inc si
loop lop
mov al,bl
add al,30h
mov dl,al
mov ah,2
int 21h
mov ah,4ch
int 21h
code ends
end star
6.在一个字符串中查找一个特定字符“$” 并用“!”代替该字符。其字符串为“This is an example$”。
data segment
char equ '$'
buf db 16,'This an example$'
data ends
code segment
assume cs:code,ds:data,es:data
star: mov ax,data
mov ds,ax
mov es,ax
mov al,char
mov ch,0
mov cl,buf
mov di,offset buf+1
repne scasb
jz exit
exit: mov al,'!'
mov [di-1],al
mov ah,4ch
int 21h
code ends
end star
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询