回 帖 发 新 帖 刷新版面

主题:[讨论]两道汇编题(求助!!急!)

1、 内存自BUF 单元开始的缓冲区连续存放着100 个学生的英文分数,编程序统计其中90~
100,60~89,60 以下者各有多少人?并把结果连续存放到自RESUT 开始的单元中。
① 结构完整。
② 程序正确。
2、编写程序将ELEMS 中的100 个字节数据的位置颠倒过来(即第一个字节和第100 个字
节的内容交换,第二个字节和99 个字节的内容交换)


各位子妹弟兄帮忙作下 orz [em1]

回复列表 (共3个回复)

沙发

谁会做帮帮喽

板凳

stack  segment stack`stack`
       dw 32 dup(0)
stack ends
data segment
buf db 255,0,255dup(0)
data ends
code segment
begin proc far
assume ss:stack,cs:code
push ds
sub ax,ax
mov ax,data
mov ds,ax
mov dx,offset buf
mov ah,10
int 21h
mov si,offset buf+2
mov bx,si
add bl,buf+1
adc bh,0
mov byte ptr[bx],`$`
sub bx,4
again: mov ax,[bx]
xchg ax,[si]
mov [bx],ax
mov ax,[bx+2]
xchg ax,[si+2]
mov [bx+2],axx
add si,5
sub bx,5
cmp bx,si
ja again
mov buf+1,0ah
mov dx,offset buf+1
mov ah,9
int 21h

3 楼

code segment
org 100h
pstart:
                              ;这里可以放输入程序的代码,如果不需要那么删掉
  mov cx,100
  lea si,buf
  cld                         ;防止反向处理
loopstart:
  lodsb
  cmp al,90
  jb nogood
  inc byte ptr result[0]
nogood:
  cmp al,60h
  jb nopass
  inc byte ptr result[1]
nopass:
  inc bytew ptr result[2]
  loop loopstart
                              ;这里可以放显示结果的代码,如果不需要那么删掉
  int 20h
buf db 10 dup(?)              ;这就是你放的成绩
result db 3 dup(?)            ;这就是统计结果
                              ;这里可以放多余数据
code ends
  end pstart

我来回复

您尚未登录,请登录后再回复。点此登录或注册