汇编语言编写 已知X、Y、Z、MAX为16位的带符号数,求三个数中最大值,结果存入MAX单元.
来源:学生作业帮助网 编辑:六六作业网 时间:2024/12/25 22:03:04
汇编语言编写 已知X、Y、Z、MAX为16位的带符号数,求三个数中最大值,结果存入MAX单元.
汇编语言编写 已知X、Y、Z、MAX为16位的带符号数,求三个数中最大值,结果存入MAX单元.
汇编语言编写 已知X、Y、Z、MAX为16位的带符号数,求三个数中最大值,结果存入MAX单元.
DATA SEGMENT
X DW 3
Y DW -5
Z DW 1
MAX DW
DATA ENDS
CODE SEGMENT
ASSUME CS:CODE,DS:DATA
START:MOV AX,DATA
mov ds,ax
MOV AX,X
MOV BX,Y
MOV CX,Z
CMP AX,BX
JGE NEXT
MOV AX,BX
NEXT:CMP AX,CX
JGE NEXT2
MOV AX,CX
NEXT2:MOV MAX,AX
MOV AH,4CH
INT 21H
CODE ENDS
END START
;给你一个类型题让你自己看,差不多的意思,改改就可以了
;数据段中已经定义了一个有N个字数据的数组M,求出M中绝对值
;最大的数,把它放在M+2n单元中,并将该数的偏移地址存放在M+2(n+1)单元中
data segment
M dw 1,4,3,2,-1,-5,-8,-9,'$'
m1 dw 10 dup(?)
disa db 'the ...
全部展开
;给你一个类型题让你自己看,差不多的意思,改改就可以了
;数据段中已经定义了一个有N个字数据的数组M,求出M中绝对值
;最大的数,把它放在M+2n单元中,并将该数的偏移地址存放在M+2(n+1)单元中
data segment
M dw 1,4,3,2,-1,-5,-8,-9,'$'
m1 dw 10 dup(?)
disa db 'the location of M+2n is : $'
disb db 'the location of M+2(n+1)is : $'
disc db 0dh,0ah,24h
data ends
stack segment stack
dw 100 dup(?)
top label word
stack ends
code segment
main proc far
assume ss:stack,cs:code,ds:data
start:mov ax,stack
mov ss,ax
lea sp,top
mov ax,data
mov ds,ax
xor si,si;用来放绝对值最大数的输出
lea bx,M
mov si,bx;记录第一个数的地址
mov cx,0;记录第一个数值假设是0
L1:mov ax,[bx]
cmp ax,24h
je L4
rol ax,1
and ax,1h
cmp ax,1;是负数的话就求原码
je L2
mov ax,[bx];正数的话就直接比较
mov di,0
cmp cx,ax
jbe L3
add bx,2
jmp L1
L2:mov di,1
mov ax,[bx];对负数进行求原码运算
sub ax,1
not ax
cmp cx,ax
jbe L3;记录绝对值比较大的数还有符号
add bx,2
jmp L1
L3:mov cx,ax;改变cx的值
mov si,bx;改变si的地址值
mov dx,di
add bx,2
jmp L1
L4:lea bx,m1
mov [bx-2],cx;M+2n存放绝对值最大的数
mov [bx],si;M+2(n+1)存放他的地址
mov [bx+2],dx;存放他的符号
L5:lea dx,disc;输出换行
mov ah,9
int 21h
lea dx,disa;输出提示语
mov ah,9
int 21h
lea bx,m1
mov dx,[bx+2]
cmp dx,0
je L51
mov dl,'-'
mov ah,2
int 21h
L51:xor si,si
lea bx,m1;把结果地址传给bx
mov si,[bx-2];把结果传给si
mov cx,4
L6:push cx
mov cl,4
rol si,cl
mov dx,si
and dl,0fh
cmp dl,9
jbe L7
add dl,7h
L7:add dl,30h
mov ah,2h
int 21h
pop cx
loop L6
L8:lea dx,disc;输出换行
mov ah,9
int 21h
lea dx,disb;输出提示语
mov ah,9
int 21h
xor si,si
lea bx,m1
mov si,[bx]
mov cx,4
L9:push cx
mov cl,4
rol si,cl
mov dx,si
and dl,0fh
cmp dl,9
jbe L10
add dl,7h
L10:add dl,30h
mov ah,2h
int 21h
pop cx
loop L9
mov ah,4ch
int 21h
main endp
code ends
end start
收起