急求汇编程序答案,下面是题目,大神快来啊

急求汇编程序答案,下面是题目,大神快来啊,第1张

DATA SEGMENT

TAB DW -6,8,9,0,-5

COUNT EQU ($-TAB)/2

MIN DW ?

FLAG DB ?

BUF1 DB 'FLAG=','$'

BUF2 DB 'MIN=','$'

DATA ENDS

ESTA SEGMENT

ESTA ENDS

CODE SEGMENT

ASSUME CS:CODE,DS:DATA,ES:ESTA

START: MOV AX,DATA

MOV DS,AX

MOV AX,ESTA

MOV ES,AX

XOR DI,DI

LEA BX,TAB

MOV CX,COUNT

CALL L_FIND

CALL T_FIND

CALL SHOW

MOV AH,4CH

INT 21H

SHOW: CMP MIN,0

JG F_EXIT

MOV FLAG ,1

MOV AH,9

LEA DX,BUF1

INT 21H

MOV AH,2

MOV DL,FLAG

ADD DL,30H

INT 21H

MOV AH,9

MOV AH,2

MOV DL,13

INT 21H

MOV AH,2

MOV DL,10

INT 21H

LEA DX,BUF2

MOV AH,9

INT 21H

MOV AH,2

MOV DL,'-'

INT 21H

NEG MIN

MOV AX,MIN

XCHG AH,AL

AAM

MOV BX,AX

MOV DL,BH

ADD DL,30H

MOV AH,2

INT 21H

MOV DL,BL

ADD DL,30H

MOV AH,2

INT 21H

MOV AX,MIN

AAM

MOV BX,AX

MOV DL,BH

ADD DL,30H

MOV AH,2

INT 21H

MOV DL,BL

ADD DL,30H

MOV AH,2

INT 21H

F_EXIT: RET

RET

T_FIND:MOV AX,DI

MOV DL,2

DIV DL

MOV CL,AL

MOV CH,0

MOV DI,0

MOV AX,ES:[DI]

MOV MIN,AX

T_START: CMP AX,ES:[DI]

JL T_EXIT

MOV AX,ES:[DI]

MOV MIN,AX

INC DI

INC DI

T_EXIT: LOOP T_START

RET

L_FIND: MOV AX ,[BX]

SHR AX,1

JC L_S

JMP L_EXIT

L_S:MOV AX,[BX]

MOV ES:[DI],AX

INC DI

INC DI

L_EXIT: ADD BX,2

LOOP L_FIND

RET

CODE ENDS

END START

题目1:

const max=1000{根据数据多少来修改,暂时认为只有1000个数}

var a,b:array [1..max] of integer

c:array [1..max*2] of integer

i,j,k,m,n:integer

begin

{读入数据就自己写吧,题目没有明说,两组分别独到a b 里即可,m n 分别表示a b 中数据的个数}

i:=1

j:=1

k:=0

repeat

inc(k)

if a[i]<b[j] then

begin

c[k]:=a[i]

inc(i)

end

else

begin

c[k]:=b[i]

inc(j)

end

until k=m+n

for i:=1 to k do write(c[i],' ')

end.

{第二题}

const max=1000

var a:array [1..max] of integer

aa:array [1..max] of boolean

no:boolean

i,n,x:integer

begin

{同样读入数据自己搞掂吧}

readln(x)

no:=true

for i:=1 to n do if a[i]<>x then

begin

aa[i]:=true

no:=true

end else aa[i]:=false

if no then writeln('NO Found') else for i:=1 to n do if aa[i] then write(a[i],' ')

end.

{约瑟夫问题楼上人已经说了}

1.

MOV A,R0

MOV R1,R1

2.

MOV 21H,20H

3.

MOV A,30H

RR A

RR A

MOV 30H,A

4.

MOV A,40H

CPL A

MOV 40H,A

5.

PUSH B

6.

MOV DPTR,#3000H

MOVX A,@DPTR

MOV R0,A

7.

CLR A

MOV DPTR,4000H

MOVC A,@A+DPTR

MOV R1,A

8.

MOV A,R3

ADD A,R4

MOV R3,A

9.

CLR C

SUBB A,R5

MOV R6,A

10.

JC NEXT

哎,可算弄完了,不保证全对,但是应该都差不多,呵呵


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/yw/11757372.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-18
下一篇 2023-05-18

发表评论

登录后才能评论

评论列表(0条)

保存