大鱼号视频原创认证:汇编程序~! 实在是不会,请大家帮帮忙~!

来源:百度文库 编辑:高校问答 时间:2024/05/09 12:29:11
一。将从键盘上输入的10个英文字母转为大写字母
回车换行后,并在屏幕上将大写字母显示出来

二。输入一个字符串(十个字符)。回车换行,又
立即把它输出袄屏幕上

三。将‘I am a student'在屏幕上显示出来

一定要把完整的程序写上来,不要只写一部分~!

程序一: --------------------------------------------------
DATA SEGMENT
STRING DB 10,?,10 DUP(?)
DATA ENDS
CODE SEGMENT
ASSUME CS:CODE,DS:DATA,ES:DATA
MAIN PROC NEAR
START: ;------------------------------------
PUSH DS
MOV AX,DATA
MOV DS,AX
MOV ES,AX

INPUT: ;------------------------------------
LEA DX,STRING
MOV AH,0AH
INT 21H

MOV AH,02H
MOV DL,0DH
INT 21H ; CR
MOV DL,0AH
INT 21H ; LF

MOV CL,STRING+1 ; STRING LENGTH
XOR CH,CH ; LOOP COUNTER
LEA BX,STRING+2 ; STRING CONTENTS
MOV AH,02H

OUTSTR: ;------------------------------------
LP_MAIN:
MOV DL,[BX]
CMP DL,7AH ; CHAR 'Z'
JG GOON_LP ; IF DL>'Z' JMPOUT
CMP DL,61H ; CHAR 'a'
JB GOON_LP ; IF DL<'A' JMPOUT
CONVERT: ;----------------------------
SUB DL,20H
GOON_LP:
INC BX ; NEXT CHAR
INT 21H
LOOP LP_MAIN

EXIT: ;------------------------------------
MOV AX,4C00H
INT 21H
MAIN ENDP
CODE ENDS
END START

程序二: --------------------------------------------------
DATA SEGMENT
STRING DB 10,?,10 DUP(?)
DATA ENDS
CODE SEGMENT
ASSUME CS:CODE,DS:DATA,ES:DATA
MAIN PROC NEAR
START: ;------------------------------------
PUSH DS
MOV AX,DATA
MOV DS,AX
MOV ES,AX

INPUT: ;------------------------------------
LEA DX,STRING
MOV AH,0AH
INT 21H

MOV AH,02H
MOV DL,0DH
INT 21H ; CR
MOV DL,0AH
INT 21H ; LF

MOV CL,STRING+1 ; STRING LENGTH
XOR CH,CH ; LOOP COUNTER
LEA BX,STRING+2 ; STRING CONTENTS
MOV AH,02H

OUTSTR: ;------------------------------------
LP_OUTCHR:
MOV DL,[BX]
INC BX ; NEXT CHAR
INT 21H
LOOP LP_OUTCHR

EXIT: ;------------------------------------
MOV AX,4C00H
INT 21H
MAIN ENDP
CODE ENDS
END START

程序三: --------------------------------------------------
DATA SEGMENT
STRING DB 'I am a student$'
DATA ENDS
CODE SEGMENT
ASSUME CS:CODE,DS:DATA,ES:DATA
MAIN PROC NEAR
START: ;------------------------------------
PUSH DS
MOV AX,DATA
MOV DS,AX
MOV ES,AX

OUTSTR: ;------------------------------------
LEA DX,STRING
MOV AH,09H
INT 21H

EXIT: ;------------------------------------
MOV AX,4C00H
INT 21H
MAIN ENDP
CODE ENDS
END START

data segment
buffer db 10 dup(?)
data ends
code segment
assume cs:code, ds:code
start:
mov ax, code
mov ds, ax
mov cx, 10
lea bx, buffer
input: mov ah, 1
int 21h
sub al, 20h
mov [bx], al
inc bx
loop input
mov cx, 10
lea bx, buffer
output: mov ah, 2
mov dl, [bx]
int 21h
loop output
mov ah, 4c00h
int 21h
code ends
end start
第一个程序, 不过未经编译。

1.
.data
s db 10 dub (0)
.code
a:
readfile stdin s
mov cx,10
lea esi,s
mov edi,esi
b:
lodsb
sub al, 20h
stosb
loop b
writefile stdout s
end a

2.
.data
s db 10 dub (0)
.code
a:
readfile stdin s
writefile stdout s
end a

3.

.data
s db "I am a student",0
.code
a:
writefile stdout s
end a

为啥非用汇编尼!
不会郁闷~

就是简单的功能调用还要上baidu.!
你完蛋了,别学计算机了

第三个人答完了,这是你的作业吧?我记得书上有类似的例题的。。。你真懒。。。。