主题:[讨论]两道汇编题(求助!!急!)
Fredpgm
[专家分:0] 发布于 2007-01-20 02:52:00
1、 内存自BUF 单元开始的缓冲区连续存放着100 个学生的英文分数,编程序统计其中90~
100,60~89,60 以下者各有多少人?并把结果连续存放到自RESUT 开始的单元中。
① 结构完整。
② 程序正确。
2、编写程序将ELEMS 中的100 个字节数据的位置颠倒过来(即第一个字节和第100 个字
节的内容交换,第二个字节和99 个字节的内容交换)
各位子妹弟兄帮忙作下 orz [em1]
回复列表 (共3个回复)
沙发
Fredpgm [专家分:0] 发布于 2007-01-20 05:29:00
谁会做帮帮喽
板凳
lavajane [专家分:0] 发布于 2007-01-24 12:54:00
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 楼
def [专家分:3380] 发布于 2007-02-10 14:24:00
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
我来回复