汇编语言:第七章实验6

mac2024-10-15  25

第七章:实验六

编程将datasg段中每个单词的前4个字母改为大写字母

寻址方式:

采用基址变址寻址[bx+si]

二重循环问题的处理:

采用栈,外层循环开始时,将cx入栈,内层循环开始时,改变cx的值,内层循环结束时,将栈中的值pop出,传给cx。

采用and和or指令对字母的大小写进行转换

ASCLL(大写)ASCLL(小写)A 0100 0001a 0110 0001

字母用八位二进制数表示,大小写的区别是第5位上0和1的区别。 大写字母-小写字母 or 0100 0001,0010 0000b 小写字母-大写字母 and 0110 0001, 1101 1111b

代码

assume cs:codesg,ss:stacksg,ds:datasg stacksg segment dw 0,0,0,0,0,0,0,0 stacksg ends datasg segment db '1. display ' db '2. brows ' db '3. replace ' db '4. modify ' datasg ends codesg segment start: mov ax,stacksg mov ss,ax mov sp,16 mov ax,datasg mov ds,ax mov cx,4 mov bx,0 s0: push cx mov si,0 mov cx,4 s: mov al,[bx+si+3] and al,11011111b mov [bx+si+3],al inc si loop s add bx,16 pop cx loop s0 mov ax,4c00h int 21h codesg ends end start
最新回复(0)