0
点赞
收藏
分享

微信扫一扫

王爽 汇编语言第三版 问题 7.9 将 datasg 段中前4个字母变成大写(汇编中的双重循环)

 

 

问题 7.9: 将 datasg 段中前 4 个字母变成大写

 

汇编代码:

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

stacksg segment
db 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 bx,0 ; 表示行
mov cx,4 ; 外层循环循环次数


lop_1:
push cx
mov si,3
mov cx,4

lop_2:
mov al,[bx+si]
and al,11011111b
mov [bx+si],al
inc si
loop lop_2

add bx,16 ; bx + 16 表示 指示下一行
pop cx
loop lop_1

mov ax, 4c00h
int 21h
codesg ends

end start

程序运行前 数据段 数据:

王爽 汇编语言第三版 问题 7.9 将 datasg 段中前4个字母变成大写(汇编中的双重循环)_保存数据

程序运行后 数据段 数据

王爽 汇编语言第三版 问题 7.9 将 datasg 段中前4个字母变成大写(汇编中的双重循环)_保存数据_02

分析:

王爽 汇编语言第三版 问题 7.9 将 datasg 段中前4个字母变成大写(汇编中的双重循环)_缩进_03

第7章 【更灵活的定位内存地址的方法】  主要学习了一下内容:

王爽 汇编语言第三版 问题 7.9 将 datasg 段中前4个字母变成大写(汇编中的双重循环)_保存数据_04

 

汇编语言是按行一条一条指令进行执行的,可以按高级语言进行缩进来写汇编程序例如可以按照 Pyhton 的空格缩进 ),最后再把缩进给去掉,这样可以更好的理解汇编的逻辑和层级关系。

 

按 python 格式的缩进后的汇编代码:

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

stacksg segment
db 0,0,0,0,0,0,0,0
stacksg ends

datasg segment
db '1. display ' ;16字节
db '2. brows ' ;16字节
db '3. replace ' ;16字节
db '4. modify ' ;16字节
datasg ends

codesg segment

start:
mov ax, datasg
mov ds, ax

mov ax,stacksg ; 栈 用来临时保存数据
mov ss,ax
mov sp,16

mov bx,0 ; 表示行
mov cx,4 ; 外层循环循环次数

lop_1:
push cx
mov si,3
mov cx,4

lop_2:
mov al, [bx+si]
and al, 11011111b
mov [bx+si], al
inc si
loop lop_2

add bx,16 ; bx + 16 表示 指示下一行
pop cx
loop lop_1

mov ax, 4c00h
int 21h
codesg ends

end start

 

 

 

举报

相关推荐

0 条评论