求大神将下面c语言程序用8086汇编语言实现

(1)
#include<stdio.h>
void main()
{
char a[]="Hello ";
char b[]="World!";
char c[13];
int i,j,k;
i=0;j=0;k=0;
while(a[i]!=0)
{
c[k]=a[i];
k++;
i++;
}
while(b[j]!=0)
{
c[k]=b[j];
k++;
j++;
}
}
(2)
#include<stdio.h>
void main()
{
char a[]="Hello";
char b[]="Hero!";
int c;
int i,j,k;
i=0;
while(i<5)
{
if(a[i]>b[i])
{
c=2;
break;
}else
if(a[i]<b[i])
{
c=1;
break;
}
i++;
}
if(i==5)
c=0;
}
(3)
#include<stdio.h>
void main()
{
int a[]=0,1,0,0,2,0,0,0,0,3,0,0,4,0,0,0,0,0,5;
int b[5];
int i,j;
i=0;j=0;
while(i<19)
{
if(a[i]!=0)
{
b[j]=a[i];
j++;
}
i++;
}
}
(4)
#include<stdio.h>
void main()
{
int a[20];
int i;
for(i=0;i<20;i++)
{
a[i]=-1;
}
}

一个一个来。

dseg segment
  a db 'Hello ',0
  b db 'World!',0
  c db 13 dup(0)
    db '$'
dseg ends
assume cs:cseg, ds:dseg
cseg segment
start:
  mov ax, dseg
  mov ds, ax
  mov es, ax

  lea si, a
  lea di, c
  mov cx, b-a
  dec cx
  repnz movsb
  lea si, b
  mov cx, c-b
  dec cx
  repnz movsb
  
  mov ah,9
  lea dx, c
  int 21h

  mov ah,4ch
  int 21h
cseg ends
end start

;2 cmpstr.asm
dseg segment
  a db 'Hello'
  b db 'Hero!'
  c db 0
dseg ends

assume cs:cseg, ds:dseg
cseg segment
start:
  mov ax, dseg
  mov ds, ax

  mov cx, 5
  lea si, a
  lea di, b
l0:
  mov al, [si]
  cmp al, [di]
  ja l1
  jb l2
  inc si
  inc di
  loop l0

  mov c, 0;此句可以省略,c的默认值就是0
  jmp exit

l1: ;a[i]>b[i]
  mov c, 2
  jmp exit
l2:  ;a[i]<b[i]
   mov c,1

exit:
  mov ah,4ch
  int 21h
cseg ends
end start

;3题
dseg segment
  a db 0,1,0,0,2,0,0,0,0,3,0,0,4,0,0,0,0,0,5 ;这里使用了db,也可改为dw
  b db 5 dup(0)  ;a是dw,则b也需要改为dw
dseg ends

assume cs:cseg, ds:dseg
cseg segment
start:
  mov ax, dseg
  mov ds, ax

  mov cx, 19
  lea si, a
  lea di, b
m0:
  mov al,[si]
  cmp al,0
  jz m1
  mov [di],al
  inc di     ;dw,则add di, 2
m1:
  inc si     ;dw,则add si, 2
  loop m0

  mov ah,4ch
  int 21h
cseg ends
end start


;4
dseg segment
  a dw 20 dup(0)
dseg ends

assume cs:cseg, ds:dseg
cseg segment
start:
  mov ax, dseg
  mov ds, ax

  mov cx, 20
  lea si, a
m0:
  mov word ptr [si],-1
  add si, 2
  loop m0

  mov ah,4ch
  int 21h
cseg ends
end start

温馨提示:答案为网友推荐,仅供参考
相似回答