17道编程
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
1.统计以2000H开始的十
个字节存储单元中偶数
的个数,存于3000H中。
data segment
data ends
code segment
assume cs:code,ds:data
mov ax,data
mov ds,ax
mov cx,10
mov si,2000h
mov di,3000h
l2:mov ax,[si]
inc si
test ax,01h
jnz l1
mov [di],ax
inc di
l1:loop l2
mov ah,4ch
int 21h
code ends
end
2.统计以TABLE开始的
十个字存储单元中奇数
的个数,存于DL中。
data segment
table db 10 dup(?)
data ends
code segment
assume cs:code,ds:data start:mov ax,data
mov ds,ax
mov dx,0
mov cx,10
lea si,table
l2:mov ax,[si]
inc si
test ax,01h
jz l1 inc dl
l1:loop l2
mov ah,4ch
int 21h
code ends
end start
3.统计以TABLE开始的
十个字节存储单元中正
数、负数和零的个数,
并将其分别存入X、Y
和Z三个变量中。
data segment
table db 10 dup(?)
x db ?
y db ?
z db ?
data ends
code segment
assume cs:code,ds:data
mov ax,data
mov ds,ax
mov x,0
mov y,0
mov z,0
mov cx,10
lea si,table
xor ax,ax
l2:mov al,[si]
inc si
cmp al,0
jge l1
inc y
jmp l4
l1:cmp al,0
jg l3
inc z
jmp l4
l3:inc x
l4:loop l2
mov ah,4ch
int 21h
code ends
end
4.统计以3000H开始的十
个字节存储单元中大于
100数的个数存于DL
中。
data segment
data ends
code segment
assume cs:code,ds:data
mov ax,data
mov ds,ax
mov dx,0
mov cx,10
mov si,3000h
l1:mov ax,[si]
inc si
cmp ax,100
jle l2
inc dl
l2:loop l1
mov ah,4ch
int 21h
code ends
end
5.将200H开始的十个字
节存储单元中数为8的
清零。
data segment
data ends
code segment
assume cs:code,ds:data
mov ax,data
mov ds,ax
mov cx,10
mov si,200h
l1:mov ax,[si]
cmp ax,8
jne l2
and ax,0
mov [si],ax
l2:inc si
loop l1
mov ah,4ch
int 21h
code ends
End
6.实现将存于1300H开始
的5个字节存储单元中
的非组合型BCD码分别
转换成ASCII码,结果
存于以2400H开始的单
元中。(不能用查表法)
data segment
data ends
code segment
assume cs:code,ds:data
mov ax,data
mov ds,ax
mov si,1300h
mov di,2400h
mov cx,5
l1:mov ax,[si]
inc si
add ax,30h
mov [di],ax
inc di
loop l1
mov ah,4ch
int 21h
code ends
end
7.实现将存于TT表中的5
个字节存储单元中的组
合型(压缩型)BCD码
分别转换成ASCII码,
结果存于以2000H开始
的单元中。
data segment
tt db 3h
db 23,24,25
data ends
code segment
assume cs:code,ds:data
mov ax,data
mov ds,ax
lea si,tt
mov di,3000h
l1:xor ax,ax
xor bx,bx
inc si
mov al,[si]
inc si
mov bl,al
and bl,0f0h
mov cl,4
shr bl,cl
add bl,30h
mov [di],bl
inc di
and al,0fh
add al,30h
mov [di],al
inc di
jmp l1
mov ah,4ch
int 21h
code ends
end
8.求班上30名同学的平
均成绩(只保留整数),
并将结果存入3000H
(整数)中。
data segment
table db 10 dup(?)
data ends
code segment
assume ds:data,cs:code
mov ax,data
mov ds,ax
lea si,table
mov di,3000h
mov cx,10
mov ax,0
mov ax,[si]
inc si
l1:add ax,[si]
inc si
loop l1
and ax,ax
cbw
mov bl,10
div bl
mov [di],al
mov ah,4ch
int 21h
code ends
end
9.在1300H开始的存储区
中,存放14H个带符号
数。要求找出其中最小
的一个数,并存到BH
单元中。
data segment
data ends
code segment
assume cs:code,ds:data
mov ax,data
mov ds,ax
mov cx,13h
mov si,1300h
xor ax,ax
mov al,[si]
inc si
l2:cmp al,[si]
jle l1
xchg al,[si]