求助(很基本的汇编程序):汇编语言分支,循环程序设计实验 大小写字母转换

实验内容及原理
1、设内存数据区有若干个大小写混合英文ASCII码字母。将其转换为全部大写。并存入原字符串后的连续的存储单元中。
参考流程图见图3-2。
2、从内存中存放的一组无符号数中,找出最大的一个,存入相应的内存单元。
谢谢 8086CPU指令系统的汇编程序 谢谢

data segment

  org  2000h

  str1  db    'Aedc123!*sdeDIO71$'

  count equ   $-str1

  org  2018h

  str2  db    count dup(?)

  data  ends

  CODE   SEGMENT

               ASSUME CS:CODE,DS:DATA

        START: mov ax,data

               MOV DS,AX

               lea si,str1

               lea di,str2

               mov cx,count

               l0:mov al,61H

               cmp ds:[si],al

               jl l1

               mov al,7aH

               cmp al,ds:[si]

               jl l1

               mov al,ds:[si]

               sub al,20h

               mov ds:[di],al

               jmp l2

               l1: mov al,ds:[si]

               mov ds:[di],al

               l2:inc si

               inc di

               loop l0

               mov dx,offset str1

               mov ah,9

               int 21h

               mov dx,offset str2

               mov ah,9

               int 21h

               mov ah,4ch

               int 21h

        CODE   ENDS

                 END START

我随便举了一个数据段的例子

温馨提示:答案为网友推荐,仅供参考
第1个回答  2010-11-02
回答你第二个问题好了,用51的芯片。有可能你自己需要改下堆栈。

ORG 00H
LJMP START
ORG 30H
START: ;设30H~3FH存放代检测数据,初始化该段内存过程略。
MOV SP,#7FH
CLR RS0
CLR RS1
MOV R0,#30H
CLR A
MOV A,@R0
LOOP:
INC R0
MOV B,@R0
PUSH ACC
PUSH B
DIV AB
JNZ NEXT
POP ACC
POP B
LJMP LOOP_END
NEXT:
POP B
POP ACC
; LJMP LOOP_END
LOOP_END:
CJNE R0,#30H,LOOP
MOV P1,A
END
相似回答