主题:[讨论]请各位大侠帮帮忙
天河之雪
[专家分:0] 发布于 2006-08-26 17:43:00
[size=6]我是个大一新生,学习汇编语言时间不长,老师留了三道上机题,人家想破头[em10]也没做出来,请各位大侠帮帮忙吧,小妹,在此谢过了!!![em8][em8][em8]
1. 内存数据区自3000H开始存有20个字节串,编程查找其中’#’的个数并显示.
2. 内存中数据区MZH,YZH分别存有两个等长度的字符串,比较这两个字符串是否相等,相等显示Y,不等显示N
3. 从键盘输入一个字母,在显示器上显示其前后相连的三个字母.
[b]很急的哟!!!拜托了!!! [/b][em8][em8][em8][/size][/size]
回复列表 (共1个回复)
沙发
有点笨不是 [专家分:100] 发布于 2006-08-31 21:16:00
第2题 不对,供参考 主要错误可能在CMPSB,JNZ的问题上
;程序模板
SSEG SEGMENT PARA STACK 'stack'
dw 100h dup(0) ;初始化堆栈大小为100
SSEG ENDS
DSEG SEGMENT
;数据段:在此处添加程序所需的数据
mzh db 'beauty'
DSEG ENDS
ESEG SEGMENT
yzh db 'ugly' ;附加段:在此处添加程序所需的数据
ESEG ENDS
CSEG SEGMENT
assume cs:CSEG, ds:DSEG, es:ESEG, ss:SSEG
MAIN PROC ;主程序入口
mov ax, dseg
mov ds, ax
mov es, ax
;此处添加主程序代码
lea si,mzh
lea di,es:yzh
cmpsb
jne a
mov dl,'y'
mov ah,2
int 21h
jmp b
a: mov dl,'n'
mov ah,2h
int 21h
b:
mov ax, 4c00h ;程序结束,返回到操作系统系统
int 21h
MAIN ENDP
CSEG ENDS
END MAIN
3题 调试过正确,不太完美
;程序模板
SSEG SEGMENT PARA STACK 'stack'
dw 100h dup(0) ;初始化堆栈大小为100
SSEG ENDS
DSEG SEGMENT
;数据段:在此处添加程序所需的数据
q db 'front:'
h db 'follow:'
DSEG ENDS
ESEG SEGMENT
;附加段:在此处添加程序所需的数据
ESEG ENDS
CSEG SEGMENT
assume cs:CSEG, ds:DSEG, es:ESEG, ss:SSEG
MAIN PROC ;主程序入口
mov ax, dseg
mov ds, ax
mov es, ax
;此处添加主程序代码
mov ah,1
int 21h
mov bl,al
mov cx,3
sub al,4
b:inc al
mov dl,al
mov ah,2h
int 21h
loop b
mov cx,3
mov al,bl
a:inc al
mov dl,al
mov ah,2h
int 21h
loop a
mov ax, 4c00h ;程序结束,返回到操作系统系统
int 21h
MAIN ENDP
CSEG ENDS
END MAIN
请各位高手大虾纠正第2题的错误,急盼!!!
编写着,快乐着!!11
我来回复