汇编语言编程问题,题目如图所示

最好都能做一下,拜托啦,可加分
越快越好!

汇编语言它是计算机语言,计算机语言说通俗点就是人类与计算机(CPU)沟通的桥梁,计算机它不认识

人类的语言,听不懂也读不懂,要让计算机替我们去完成我们的工作,就需要我们将要交给计算机完成

的任务翻译为计算机语言。汇编语言是各种语言中的一种,它属于低级的计算机语言,这是相对于面向

过程的C语言,以及面向对象的C++,java而言。它是除机器语言以外最接近硬件的计算机语言,而且可以

通过学习汇编语言深入的了解操作系统的底层运行机制,并以CPU的角度思考问题。这样可以让你在编写

高级语言的程序的时候避免很多错误,并且能更深入理解高级语言的执行 原理。因为汇编语言属于低级

语言,所以既然低级就肯定不容易被普通用户认识,这需要一定的硬件基础知识和一些计算机工作原理

的知识。以前在大学阶段学过汇编语言,但没有当回事儿,连作业都是复制加粘贴完成的(像这样的不

在少数吧:))。工作以后才发现这个语言是个好东西,它其实是个非常重要的基础课程。所以现在有

时间就把书打开多看一点,学一点。汇编语言目前常见的有两种:一个是基于8086/88架构的DOS下的16

位汇编语言,还有就是基于80386架构及其以后型号的windows下32位汇编语言。
温馨提示:答案为网友推荐,仅供参考
第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

本回答被提问者采纳
相似回答