天天看点

3、王爽《汇编语言》笔记_实验6

将每个段的前四个字母变为大写

assume cs:codesg,ds:datasg,ss:stacksg

datasg segment

    db '1. display      '	; 长度均为0Ah

    db '2. brows        '

    db '3. replace      '

    db '4. modify       '

datasg ends

stacksg segment

    dw 0,0,0,0,0,0,0,0		;堆栈

stacksg ends

codesg segment

start: mov ax,datasg		; 数据段初始化

       mov ds,ax

       mov bx,0

       mov ax,stacksg		; 堆栈段初始化

       mov ss,ax

       mov sp,16

       mov cx,4			; 行数

   s0: push cx			; 外层循环,更改一行

       mov si,0

       mov cx,4

    s: mov al,[bx+3][si]	; 内层循环,更改每行

       and al,11011111b		; 更改为大写字母

       mov [bx+3][si],al

       inc si

       loop s			; 内层循环结束

       add bx,16		; 下一行偏移

       pop cx

       loop s0			; 外层循环结束

       mov ax,4c00h

       int 21h

codesg ends

end start