编程,将datasg段中每个dan单词的前四个字母改为大写字母。(每个字符串长度为16字节)

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 :
       
codesg ends

end start

 

个人代码:

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,datasg
       mov ds,ax
       
       mov ax,stacksg
       mov ss,ax
       mov sp,16
       
       mov si,0
       mov cx,4
     s:
       push cx
       mov bx,3
       
       mov cx,4
     t:mov al,ds:[bx+si]
       and al,11011111b
       mov ds:[bx+si],al
       inc bx
       loop t
       
       pop cx
       add si,0010h
       loop s
       
       mov ax,4c00h
       int 21h
       
codesg ends

end start

分析:思路要清晰,我打算用bx定位字符串中单词的前四个字母,si定位字符串,循环分两层,内层循环控制字符串中的单词,外层循环控制字符串。所以在每次内层循环开始前,要将bx置为3,即外层循环开始时bx置为3。执行内层循环之前,先将cx中的值入栈,执行过后再出栈。

汇编语言 第七章 实验

汇编语言 第七章 实验

相关文章:

  • 2021-06-12
  • 2021-04-10
  • 2022-12-23
  • 2022-01-01
  • 2022-12-23
  • 2022-12-23
  • 2022-02-04
  • 2021-10-12
猜你喜欢
  • 2022-12-23
  • 2021-05-10
  • 2021-04-23
  • 2021-08-10
  • 2021-10-11
  • 2021-11-08
  • 2021-04-09
相关资源
相似解决方案