汇编语言:将datasg段中每个单词的前4个字母改写为大写字母.
来源:学生作业帮 编辑:作业帮 分类:英语作业 时间:2024/05/16 08:50:25
汇编语言:将datasg段中每个单词的前4个字母改写为大写字母.
assume cs:codesg,ss:stacksg,ds:datasg
stacksg segment
\x05dw 0,0,0,0,0,0,0,0
stacksg ends
datasg segment
\x05db '1.display '
\x05db '2.brows '
\x05db '3.replace '
\x05db '4.modify '
datasg ends
codesg segment
start:\x05mov ax,stacksg
\x05mov ss,ax
\x05mov sp,16
\x05mov ax,datasg
\x05mov ds,ax
\x05mov bx,0
\x05mov cx,4
s:\x05push cx
\x05mov si,3
\x05mov cx,4
s0:mov al,[bx+si]
\x05and al,0dfh //与运算
\x05mov [bx+si],al
\x05inc si
\x05loop s0
\x05add bx,16
\x05pop cx
\x05loop s
\x05mov ax,4c00h
\x05int 21h
codesg ends
end start
不是很理解这个代码的答案.能否哪位高手能把代码的每一句的含义写上.
assume cs:codesg,ss:stacksg,ds:datasg
stacksg segment
\x05dw 0,0,0,0,0,0,0,0
stacksg ends
datasg segment
\x05db '1.display '
\x05db '2.brows '
\x05db '3.replace '
\x05db '4.modify '
datasg ends
codesg segment
start:\x05mov ax,stacksg
\x05mov ss,ax
\x05mov sp,16
\x05mov ax,datasg
\x05mov ds,ax
\x05mov bx,0
\x05mov cx,4
s:\x05push cx
\x05mov si,3
\x05mov cx,4
s0:mov al,[bx+si]
\x05and al,0dfh //与运算
\x05mov [bx+si],al
\x05inc si
\x05loop s0
\x05add bx,16
\x05pop cx
\x05loop s
\x05mov ax,4c00h
\x05int 21h
codesg ends
end start
不是很理解这个代码的答案.能否哪位高手能把代码的每一句的含义写上.
其他的都是固定格式,或者基本寻址方式,和,条件跳转实现的循环
算法就这一句
and al,0dfh //与运算
意思是把大写字母转化为小写字母,(0df)h=(1101 1111)b,
这个与运算是把该字符的第6位清零,其他位不变,你仔细观察就会发现,大写字母和小写字母的区别是,只用这一位不同,大写字母的第6为0,而小写字母的第6位为1,因此把大写字母变成小写字母只需把字母和0dfh相与就可以了,当然这还有一点好处是,原来是大写字母的不会影响
再问: mov ax,stacksg mov ss,ax mov sp,16 是啥意思。。。。为什么要有这三步。。。
再答: 初始化堆栈和栈顶指针
算法就这一句
and al,0dfh //与运算
意思是把大写字母转化为小写字母,(0df)h=(1101 1111)b,
这个与运算是把该字符的第6位清零,其他位不变,你仔细观察就会发现,大写字母和小写字母的区别是,只用这一位不同,大写字母的第6为0,而小写字母的第6位为1,因此把大写字母变成小写字母只需把字母和0dfh相与就可以了,当然这还有一点好处是,原来是大写字母的不会影响
再问: mov ax,stacksg mov ss,ax mov sp,16 是啥意思。。。。为什么要有这三步。。。
再答: 初始化堆栈和栈顶指针
汇编语言:将datasg段中每个单词的前4个字母改写为大写字母.
C语言问题 输入一个英文句子,将每个单词的第一个字母改成大写字母
C语言求助:输入一个英文句子,将每个单词的第一个字母改成大写字母.
输入一个英文句子,将每个单词的第一个字母改成大写字母.
杭电acm2026 Problem Description输入一个英文句子,将每个单词的第一个字母改成大写字母.Inpu
杭电ACM 2026输入一个英文句子,将每个单词的第一个字母改成大写字母.Input输入数据包含多个测试实例,每个测试实
C++..."输入一句话将这句话中所有单词(假设都是字母)的第一个字母改成大写字母,并输出"例如:pig变成Pig
java编程,输入一段英文字母,将每个单词的首字母转换为大写字母.
首字母变大写输入一个英文句子,将每个单词的第一个字母改成大写字母.输入数据包含多个测试实例,每个测试实例是一个长度不超过
已知大写字母A的ASCII码是65,小写字母aASCII码是97,以下不能 将变量c中大写字母转换为对应小写字母的语
C语言解读 我是新手啊 请指教 下面的程序是把输入英文的每个单词的第一个字母编程大写字母,k是怎么回事
自定义函数f,将字符串中下标为奇数位置上的大写字母转化为小写字母下标为偶数位置上的小写字母转化为大写