第1个回答 2015-06-18
;1
data segment
buf1 db 1,2,3,4,5,6,7,8,9,10
buf2 db 10 dup(0)
data ends
code segment
assume cs:code, ds:data
start:
mov ax, data
mov ds, ax
mov cx,10
mov si,0
mov di,9
Loop1:
mov al, buf1[si]
shl al,1 ;*2
mov buf2[di],al
inc si
dec di
loop loop1
mov ax, 4c00h
int 21h
code ends
end start
;2
data segment
buf1 db -24 ;X
buf2 db 33 ;Y
RESULT dw 0 ;Z
data ends
code segment
assume cs:code, ds:data
start:
mov ax, data
mov ds, ax
xor ax,ax
mov al, buf1 ; X
mov bl,2
imul bl ; X*2
sub al, buf2
sbb ah,0 ;
test ax, 8000h
jz r0
neg ax
R0:
mov result,ax
mov ax, 4c00h
int 21h
code ends
end start
;3
data segment
STRING db "xxyyyyxxyxxYxxYxYxxY$"
len equ $-STRING
COUNT dw 0
data ends
code segment
assume cs:code, ds:data
start:
mov ax, data
mov ds, ax
mov cx,len
mov si,0
mov bx,0
LOOP1:
mov al,STRING[si]
cmp al,'x'
jnz next
inc bx
next:
inc si
loop loop1
mov count, bx
mov ax, 4c00h
int 21h
code ends
end start
;4
data segment
buf1 dw 22,333,423,533,522,30,332,49,302,130,29,419,848,132,444,323,443,534,3555,2243
buf2 dw 0, 0FFFFh, 0 ;buf2[0]-max, buf2[1]-min, buf2[2]-average
data ends
code segment
assume cs:code, ds:data
start:
mov ax, data
mov ds, ax
mov cx,20
mov si,0
LOOP1:
mov ax, buf1[si]
cmp ax, buf2
ja max
min0:
cmp ax, buf2[2]
jb min1
jmp ave
max:
mov buf2, ax
jmp min0
min1:
mov buf2[2],ax
ave:
add buf2[4],ax
inc si
inc si
loop loop1
mov ax,buf2[4]
mov dx,0
mov bx,20
div bx
mov buf2[4],ax
mov ax, 4c00h
int 21h
code ends
end start本回答被提问者采纳