问答1 问答5 问答50 问答500 问答1000
网友互助专业问答平台

简单的汇编语言程序解析

提问网友 发布时间:2022-04-23 14:23
声明:本网页内容为用户发布,旨在传播知识,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。
E-MAIL:1656858193@qq.com
1个回答
热心网友 回答时间:2023-10-18 04:26
data segment ;定义数据段

string1 db 'Move the cursor backward' ;比较字符串1

string2 db 'Move the cursor backward' ;比较字符串2

mess1 db 'Match.',13,10,'$' ;比较结果1

mess2 db 'No Match!',13,10,'$' ;比较结果2

data ends ;数据段结束

code segment ;定义代码段

main proc far ;定义一个过程(类似C的函数)

assume cs:code,ds:data,es:data ;设定各段与段寄存器关联

start: ;程序入口处(类似C的main函数)

push ds ;压入ds

sub ax,ax ;ax = 0

push ax ;压入ax

mov ax,data ;ax = 数据段基址

mov ds,ax ; ds = ax

mov es,ax ;ds = ax

lea si,string1 ;si = string1的偏移地址

lea di,string2 ;di = string2的偏移地址

cld ;DF=0

mov cx,25 ;比较次数

repz cmpsb ;比较指令

jz match ;如果相同ZF=1

lea dx,mess2 ;dx = mess2 的偏移地址

jmp short disp ;跳到disp

match:

lea dx,mess1 ; dx = mess1 的偏移地址

disp:

mov ah,9 ;9号中断,显示一个一'$'结尾的字符串

int 21h

ret ;返回

main endp

code ends ;代码段结束

end start ;程序结束
另注:
MASM汇编程序设计的基本框架是:
data segment
;数据
data ends
stack segment
;堆栈
stack ends
code segment
assume cs:code,ds:data
start:
;代码

end start
热心网友 回答时间:2023-10-18 04:26
data segment ;定义数据段

string1 db 'Move the cursor backward' ;比较字符串1

string2 db 'Move the cursor backward' ;比较字符串2

mess1 db 'Match.',13,10,'$' ;比较结果1

mess2 db 'No Match!',13,10,'$' ;比较结果2

data ends ;数据段结束

code segment ;定义代码段

main proc far ;定义一个过程(类似C的函数)

assume cs:code,ds:data,es:data ;设定各段与段寄存器关联

start: ;程序入口处(类似C的main函数)

push ds ;压入ds

sub ax,ax ;ax = 0

push ax ;压入ax

mov ax,data ;ax = 数据段基址

mov ds,ax ; ds = ax

mov es,ax ;ds = ax

lea si,string1 ;si = string1的偏移地址

lea di,string2 ;di = string2的偏移地址

cld ;DF=0

mov cx,25 ;比较次数

repz cmpsb ;比较指令

jz match ;如果相同ZF=1

lea dx,mess2 ;dx = mess2 的偏移地址

jmp short disp ;跳到disp

match:

lea dx,mess1 ; dx = mess1 的偏移地址

disp:

mov ah,9 ;9号中断,显示一个一'$'结尾的字符串

int 21h

ret ;返回

main endp

code ends ;代码段结束

end start ;程序结束
另注:
MASM汇编程序设计的基本框架是:
data segment
;数据
data ends
stack segment
;堆栈
stack ends
code segment
assume cs:code,ds:data
start:
;代码

end start

本文如未解决您的问题请添加抖音号:51dongshi(抖音搜索懂视),直接咨询即可。

cqy是什么意思? 大家聊天习惯常用微信还是QQ 单片机汇编指令:( INPUT: JB P1.3 , INPUT )是什么意思 QQ上,家里附近的人靠谱不? 汇编语言中and ax ax 还有or ax ax 具体作用是什么都改变了什么标志位?求详解 汇编语言中and ax ax 还有or ax ax 具体作用是什么都改变了什么标志位?求详解 汇编语言中and ax ax 还有or ax ax 具体作用是什么都改变了什么标志位... cqy什么意思 “汇编call”的命令解析是什么? “汇编call”的命令解析是什么? 现在女孩子用什么处对象交友软件居多? 汇编指令CDQ的详解? 违规停放监测系统那个公司的比较完善? 汇编指令CDQ的详解? 捷停车未查到入场怎么出场 汇编call 命令 解析 cpy cqy cdx是什么意思? 惠普1020和1108的区别 捷顺公众号怎么使用捷停车 汇编指令含义 xor shr rep lea cmp jl test 哪位能逐一详解下!!! 扩列备拍是啥意思 求解一小段简单的汇编指令~~ 求解一小段简单的汇编指令~~ printf()函数调用对应的汇编代码如下,res为int变量,请详解各个汇编指令的意思。 printf()函数调用对应的汇编代码如下,res为int变量,请详解各个汇编指令的意思。 我和女友聊天她说她去cdx 问一下cdx 是什么意思,求答案,全面些!_百度... printf()函数调用对应的汇编代码如下,res为int变量,请详解各个汇编指令的意思。 cdx的解释是什么? 汇编语言。分析下面给出程序的功能,求详解,每一步的意思和整体的功能。 在汇编中,指令DAA是什么意思 嵌入式 arm 汇编 指令 tst和beq 这两个指令分别什么意思呢?跪求详解?一定采纳 汇编neg指令? 扩列什么意思? 8086、8088汇编指令大全 8086、8088汇编指令大全 8086、8088汇编指令大全 汇编语言中的PUSH的用法 汇编语言中的PUSH的用法 汇编语言中的PUSH的用法 逾期被起诉会怎样
Top