回 帖 发 新 帖 刷新版面

主题:[讨论]请各位大侠帮帮忙

[size=6]我是个大一新生,学习汇编语言时间不长,老师留了三道上机题,人家想破头[em10]也没做出来,请各位大侠帮帮忙吧,小妹,在此谢过了!!![em8][em8][em8]
1. 内存数据区自3000H开始存有20个字节串,编程查找其中’#’的个数并显示.
2. 内存中数据区MZH,YZH分别存有两个等长度的字符串,比较这两个字符串是否相等,相等显示Y,不等显示N
3. 从键盘输入一个字母,在显示器上显示其前后相连的三个字母.

[b]很急的哟!!!拜托了!!! [/b][em8][em8][em8][/size][/size]

回复列表 (共1个回复)

沙发

第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

我来回复

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