DEBUG及简单程序设计

1. 编一程序,实现:显示A到z 26个字母

STACK   SEGMENT STACK
    DW 64 DUP(?)
STACK   ENDS

CODE    SEGMENT

        ASSUME CS:CODE

START:  MOV  CX,26
        MOV  BL,'A'
        MOV  AH,02H
A1:     MOV  DL,BL
        INT  21H
        INC  BL
        LOOP A1
        MOV  AH,4CH
        INT  21H

CODE    ENDS
        END START

2.编一程序,实现:数据区的0号单元到15号单元 分别存0到15这15个数

DATA    SEGMENT
        dw 12,34,56
DATA    ENDS

CODE    SEGMENT 
        ASSUME CS:CODE,DS:DATA

START:  MOV     ax,data
        MOV     ds,AX
        xor     bx,bx       
        mov     cx,0016  
        mov     al,00
Lop:    mov     [bx],al
    inc     al
    daa
    inc     bx
    loop    lop
        int     20h

CODE    ENDS
        END START

3.编写一个加法程序:1325+9839

要求:用ASCII码的形式将加数与被加数存放在数据区DATA1和DATA2中,并将相加的结果显示输出。

DATA SEGMENT
DATA1 DB '5','2','3','1'
DATA2 DB '9','3','8','9','0'
DATA ENDS
STACK SEGMENT PARA STACK 'STACK'
    DB 64 DUP(?)
STACK ENDS
CODE SEGMENT
    ASSUME CS:CODE,DS:DATA,SS:STACK,ES:DATA
START PROC FAR
    PUSH DS
    MOV AX,00H
    PUSH AX
    MOV AX,DATA
    MOV DS,AX
    MOV ES,AX   ;初始化程序
    CLD         ;DF=0,为正向串
    LEA SI,DATA1;取1352的OFFSET
    LEA DI,DATA2;取9839的OFFSET
    MOV CX,04H  ;计算计算次数
    MOV AX,00H  ;将暂存标志寄存器的内容AH寄存器清0
LOOP1:
    LODS DATA1  ;取串操作,[SI]->AL,SI+1->SI
    SAHF        ;AH中内容送标志REG
    ADC AL,[DI] ;将操作数带进位加法
    AAA         ;ASCII码运算的十进制加法调整
    LAHF        ;FLAG REG内容暂存AH中
    OR AL,30H   ;ASCII——>AL
    STOSB       ;存串操作,AL-[DI],DI+1->DI
    LOOP LOOP1  ;循环
    AND AH,01H  ;CARRY FLAG->AH
    OR AH,30H   ;最高位进位为ASCII
    MOV [DI],AH ;并送到DATA2的最后一个字符串
    MOV AH,02H  ;DOS中断02H
    MOV CX,05H  ;显示数据位CX
LOOP2:          ;
    MOV DL,[DI] ;显示数据送到DL
    INT 21H     ;
    DEC DI      ;
    LOOP LOOP2  ;
    RET         ;   
CODE ENDS       ;
END START       ;

4.编一程序,将DATA数据区内10个16位有符号二进制数由小到大排序,结果存放到原数据区。

DATA SEGMENT
    DW 6666H,7777H,8888H,9999H,0AAAAH,0BBBBH,0CCCCH,0DDDDH,0EEEEH,0FFFFH
DATA ENDS
CODE SEGMENT
    ASSUME CS:CODE,DS:DATA
START:
    MOV AX,DATA
    MOV DS,AX
    MOV CX,9
L1: 
    MOV DX,CX
    MOV BX,0
L2:
    MOV AX,[BX]
    INC BX
    INC BX
    CMP AX,[BX]
    JLE DONE
    XCHG [BX],AX
    DEC BX
    DEC BX
    MOV [BX],AX
    INC BX
    INC BX
DONE:
    DEC DX
    JNE L2
    LOOP L1
    MOV AX,4C00H
    INT 21H
CODE ENDS
END START

猜你喜欢

转载自blog.csdn.net/Everywhere_wwx/article/details/80321852