汇编语言x8086:分支程序设计

文章描述了两个编程练习:一是将内存中的小写字符a转换为大写并在屏幕上显示;二是比较两个带符号字节并根据大小和正负存入相应单元。提供了源代码和调试数据。
摘要由CSDN通过智能技术生成

1、内存有一个字节变量VAL中存放着小写字符’a’,请将该字符转换为大写字符并在屏幕中显示出来。

(由于我写的太好了,可以自定义输入输出,按照提示符输入输出即可)

源代码:

DATA SEGMENT
    VAL DB 'a'
    ANS DB ?
    CHARS DB 'The result is:$';提示语
    CRLF DB	0dh,0ah,'$';回车
DATA ENDS
STACK SEGMENT
    ;
STACK ENDS
CODE SEGMENT
    ASSUME CS:CODE,DS:DATA,SS:STACK
START:
    MOV AX,DATA
    MOV DS,AX;装载ds数据段内容
OUTPUTCHARS:
    mov dx,offset CHARS
    mov ah,09h
    int 21h
    xor dx,dx;清零
    mov dl,val;存入val的值
    sub dl,20h;ascii的值减去32即为对应的大写字母
    mov ANS,dl;将值存入ANS中
    mov ah,02h
    int 21h
    mov dx,offset crlf;输出回车,结果更明显
    mov ah,09h
    int 21h
STOP:    
    mov ah,4CH
    int 21h
CODE ENDS
     END START

执行结果的贴图:

Debug调试的源数据:

2、设存储单元A和B各有一带符号字节数,比较大小和正负,要求将较大数送RES1单元;如果有负数,将一个负数送RES2,否则RES2送-1。

(由于我写的太好了,可以自定义输入输出,按照提示符输入输出即可)

源代码:

DATA SEGMENT
    A DB -1
    B DB 2
    RES1 DB ?
    RES2 DB ?
    CHARS1 DB 'RES1:$'
    CHARS2 DB 13,10,'RES2:$'
    CRLF DB 13,10,'$'
DATA ENDS
STACK SEGMENT
STACK ENDS
CODE SEGMENT
ASSUME CS:CODE,DS:DATA,SS:STACK
START:
    mov ax,DATA
    mov ds,ax
    mov al,A
    mov bl,B
    cmp al,bl
    JG R1
    MOV RES1,bl
    jmp R2
    R1:
    MOV RES1,al
    R2:
    mov RES2,al
    cmp B,0
    jl R3
    jmp EXIT
    R3:
    mov RES2,bl
    EXIT:
    MOV AH,4CH
    int 21h
CODE ENDS
     END START

执行结果的贴图:

Debug调试的源数据:

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值