codeends指令(一个汇编的指令,我是新手,请帮帮忙)

本文目录
一个汇编的指令,我是新手,请帮帮忙
修改如下:
STACK SEGMENT STACK
DW 64 DUP( ? )
STACK ENDS
CODE SEGMENT
ASSUME CS:CODE
START: MOV SI,3500H
MOV DI,3510H
MOV BX,000AH
MOV CX,0004H
MOV AH,00H
MOV AL,
SUB AL,30H
A1: IMUL BX
ADD AL,
ADC AH,00 //增加这一句 ,在大于等于256时不会出错
SUB AL,30H
INC SI
LOOP A1
MOV ,DX //增加此句,在大于等于时65536时不会出错
/ MOV ,AX/
A2: JMP A2
CODE ENDS
END START
公式:将地址为3500至3505连续5位ASCII码的数字转为二进制的数字
x1=(-0x30)
x2=x1*10+(-0x30)
x3=x2*10+(-0x30)
x4=x3*10+(-0x30)
x5=x4*10+(-0x30)
x5为最后结果
8086汇编语言 数据串操作指令
1、将数据段中定义的字符串“HELLO!”传送到附加段中。
data segment
string1 db ’HELLO!’
ChrCoun equ $-string
data ends
extra segment
string2 db ChrCoun dup(?)
extra ends
code segment
assume cs:code,ds:data,es:extra
start:mov ax,data
mov ds,ax
mov ax,extra
mov es,ax
lea si,string1
lea di,string2
mov cx,ChrCoun
cld
rep movsb
mov ah,4ch
int 21h
code ends
end start
2、使用LODSB指令将字符串中的‘HELLO!’中的第1个字符和第3个字符分别存入bl和bh中
data segment
string db ’HELLO!’
data ends
code segment
assume cs:code,ds:data
start:mov ax,data
mov ds,ax
lea si,string
cld
lodsb
mov bl,al
lodsb
lodsb
mov bh,al
mov ah,4ch
int 21h
code ends
end start
3、在ES段存放10个ASCII码,搜索‘E’,若找到则记下搜索次数及存放地址,并将AH置1,否则AH清零。
extra segment
string db ‘ab12345Ecd’
extra ends
code segment
assume cs:code,ds:data,es:extra
start:mov ax,extra
mov es,ax
lea di,string
mov cx,10
cld
repnz scasb
jcxz not_E
mov cx,di
sub cx,offset string ;搜索次数
dec di ;存放地址
not_E:
xor ah,ah
Exit:
mov ah,4ch
int 21h
code ends
end start

更多文章:
全球新冠肺炎疫情背景下航运发展(盐田港复苏日志:半年历劫从“低谷”到“爆仓” 疫情之后巨轮如何越洋航行)
2026年9月7日 17:10
matlab求解带字母参数方程组(我想matlab求一个关于x,y的方程组 ab c d f e h m n 都是参数)
2026年9月7日 16:30
oracle中的循环语句(下面哪个不是oracle程序设计中的循环语句 a for)
2026年9月7日 15:30
电脑里2个系统怎么删除一个(电脑开机显示有两个系统,如何删除一个)
2026年9月7日 12:20
scrollthrough意思(“scroll”是什么意思)
2026年9月7日 08:00
怎么激活keygen(注册机如何激活cad2008一个简单激活cad2008的方法)
2026年9月7日 06:30



