汇编语言 程序设计 顺序结构

顺序结构

目录

顺序结构

将输入的大写字母转换成小写字母输出

1号功能详细解释

2号功能详细解释

9号功能详细解释

有两个自变量VAR1和VAR2,编写程序实现交换其值的功能。


将输入的大写字母转换成小写字母输出

思考:如何接收输入的字符,                   1号功能    

           如何进行交互,                              9号功能      

           如何将大写字母转为小写字母,     ADD

           如何把结果输出                               2号功能     

DATA SEGMENT
    D1_input DB 'Please input a letter from A to Z: $'         ;提示要输入的字母
    D2_output DB 0DH, 0AH, 'Convert result is: $'              ;显示结果前的提示语句
DATA ENDS

STACK SEGMENT STACK     ;开辟堆栈段用于存放数据
    DB 200 DUP(?)
STACK ENDS

CODE SEGMENT
    ASSUME CS:CODE, DS:DATA, SS:STACK
    START: MOV AX, DATA
          MOV DS, AX
          MOV AH, 09H         ;调用9号功能将字符的显示到屏幕上
          LEA DX, D1_input    ;将提示输入语句的有效地址(偏移地址)存放到DX中
          INT 21H             ;21号中断语句
          MOV AH, 1           ;调用1号功能,接收从键盘键入的值,接收的值保存在AL的寄存器中
          INT 21H             
          PUSH AX             ;对AX进行压栈,将输入到AL中的数据存入
          MOV AX,09H          ;调用9号功能,将输出结果的提示语句显示
          LEA DX, D2_input    ;DX指向要显示语句的首地址
          INT 21H             
          POP AX              ;出栈
          ADD AL, 20H         ;ascll码中A-Z的表示是 41H-5AH,a-z的表示是61H-7AH
          MOV AH, 2           ;调用2号功能将字符显示
          MOV DL, AL     
          INT 21H
          MOV AH, 4CH
          INT 21H
CODE EDNS
    END START

LEA Load effect address 取有效地址,也就是偏移地址

1号功能详细解释

语句格式:

MOV AH, 09H
INT 21H

1号功能会从键盘接收一个字符

2号功能详细解释

语句格式:

MOV AH, 2
MOV DL, 'A'
INT 21H

2号功能会将存储在DL中的字符显示,并将光标后移一格

9号功能详细解释

MOV AH, 09H
MOV DX, OFFSET DATA      ;DATA为字符串的存放区
INT 21H

9号功能会将目标地址中以‘$’结尾的字符串显示在屏幕上

有两个自变量VAR1和VAR2,编写程序实现交换其值的功能。

DATA SEGMENT
    VAR1 DW 100
    VAR2 DW 200
DATA ENDS

STACK SEGMENT STACK
    DW 50 DUP(?)
STACK ENDS

CODE SEGMENT
    ASSUME CS:CODE, DS:DATA, SS:STACK
    START: MOV AX, DATA
          MOV DS, AX
          MOV AX, VAR1
          XCHG AX, VAR2
          MOV VAR1, AX                
          MOV AH, 4CH
          INT 21H
CODE ENDS
    END START

XCGH中,如果要交换两个内存操作数,则用寄存器作为临时容器,把 MOV 指令与 XCHG 指令一起使用: 

  • 0
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值