问几个简单的汇编程序
解决时间 2021-05-22 13:54
- 提问者网友:蓝琪梦莎
- 2021-05-21 17:18
1.找出最大数
如下给出一组字节数,请找出其中的最大数。
DATA SEGMENT
X DB 1,0,3,7,4,6,9,2,8,5
N EQU $-X
DATA ENDS
--------------------------------------------------------------------
2.找出最小数
如下给出下列一组字节数,请找出其中的最小数。
DATA SEGMENT
X DB 1,0,3,7,4,6,9,2,8,5
N EQU $-X
DATA ENDS
--------------------------------------------------------------------
3.统计字符“A”的个数
任意给定一串字符串,统计其中字符“A”的个数。如:
DATA SEGMENT
X DB 'ABAACDEFAFGAWAE123A$'
N EQU $-X
DATA ENDS
--------------------------------------------------------------------
4.统计正数、负数和零的个数
任给一组字节数,统计其中正数、负数和零的个数。数据定义如下:
DATA SEGMENT
X DB 1,1,0,2,-3,-1,0,4,-4,0,5,-6,0, 8, 0,-7,-5,9,0,10,0,0,6,-2
N EQU $-X
DATA ENDS
--------------------------------------------------------------------
5.同时找出最大数和最小数
已知给定一组字节数据,请同时找出其中的最大数和最小数。(要求程序中找最大、最小数部分应是一个三分支结构,程序主体是一个循环结构,并且最后把最大数、最小数分别存放在AL、BL寄存器中。)数据定义如下所示:
DATA SEGMENT
X DB 0,1,7,3,4,9,5,2,8,6
N EQU $-X
DATA ENDS
最佳答案
- 五星知识达人网友:旧脸谱
- 2021-05-21 18:35
1、找最大数
DATA SEGMENT
X DB 1,0,3,7,4,6,9,2,8,5
N EQU $-X
DATA ENDS
assume cs:codes, ds:DATA
codes segment
start:
mov ax, DATA
mov ds, ax
mov cx, N-1
lea si, X
mov al, [si] ; al保存最大数
cnt:
cmp al, [si]
jae next
mov al, [si]
next:
inc si
loop cnt
mov ax, 4c00h
int 21h
codes ends
end start
2、找最小数
DATA SEGMENT
X DB 1,0,3,7,4,6,9,2,8,5
N EQU $-X
DATA ENDS
assume cs:codes, ds:DATA
codes segment
start:
mov ax, DATA
mov ds, ax
mov cx, N-1
lea si, X
mov al, [si] ; al保存最小数
cnt:
cmp al, [si]
jbe next
mov al, [si]
next:
inc si
loop cnt
mov ax, 4c00h
int 21h
codes ends
end start
3、统计字符A的个数
DATA SEGMENT
X DB 'ABAACDEFAFGAWAE123A$'
N EQU $-X
DATA ENDS
assume cs:codes, ds:DATA
codes segment
start:
mov ax, DATA
mov ds, ax
mov cx, N
lea si, X
xor ax, ax ; ax保存A的个数
cnt:
cmp byte ptr [si], 'A'
jne next
inc ax
next:
inc si
loop cnt
mov ax, 4c00h
int 21h
codes ends
end start
4、统计正数,负数和0的个数
DATA SEGMENT
X DB 1,1,0,2,-3,-1,0,4,-4,0,5,-6,0, 8, 0,-7,-5,9,0,10,0,0,6,-2
N EQU $-X
DATA ENDS
assume cs:codes, ds:DATA
codes segment
start:
mov ax, DATA
mov ds, ax
mov cx, N
lea si, X
xor ax, ax ;正数
xor bx, bx ;负数
xor dx, dx ;0
cnt:
cmp byte ptr [si], 0
jg positive
jl negtive
jz zero
inc ax
positive:
inc ax
jmp upd
negtive:
inc bx
jmp upd
zero:
inc dx
upd:
inc si
loop cnt
mov ax, 4c00h
int 21h
codes ends
end start
5、找出最大最小数,分别放在al和bl里
DATA SEGMENT
X DB 0,1,7,3,4,9,5,2,8,6
N EQU $-X
DATA ENDS
assume cs:codes, ds:DATA
codes segment
start:
mov ax, DATA
mov ds, ax
mov cx, N
lea si, X
mov al, [si]
mov bl, [si]
cnt:
cmp al, [si]
jl bigger
cmp bl, [si]
jg smaller
jmp upd
bigger:
mov al, [si]
jmp upd
smaller:
mov bl, [si]
jmp upd
upd:
inc si
loop cnt
mov ax, 4c00h
int 21h
codes ends
end start
全部回答
- 1楼网友:有你哪都是故乡
- 2021-05-21 20:06
1;
MOV CX,N
LEA BX,X
LEA DX,X
LOP: CMP DX,BX
JAE NEXT
MOV BX,DX
NEXT;INC BX
LOOP LOP
我要举报
大家都在看
推荐资讯