几个汇编语言问题.高手帮忙解答下..
展开全部
⒈
⑴立即数寻址
2000送给al
2000h直接包含在代码段中
⑵直接寻址
ea(物理地址)=30000h(段值)+2000h(偏移地址)
=32000h
该指令ea为32000h的存储单元中的内容送给ax;
⑶寄存器寻址
将bx中的内容送给ax
执行后
(ax)=0038h;
⑷寄存器的间接寻址
ea(物理地址)=30000h(基址使用bx,默认段值在ds中)+00389(偏移地址)=30038h
⑸寄存器相对寻址
ea=30000h(默认段值在ds中)+0038(偏移地址)
+30h(位移量)=30068h
⑹基址加变址寻址
ea=40000h(基址使用bp,段值默认为ss)+0019h+0012h
=4002bh
偏移地址
=bp+si=0019h+0012h=002bh
⑺基址加变址的相对寻址
ea=30000h(默认段值在ds中)+0038h+0012h+10h
=3005ah
偏移地址=0038h+0012h+10h=005a
⑻带段跨越前缀的寄存器的间接寻址(段值在指定的es中)
ea=35000h(段值指定es中内容)+0038h
偏移地址=0038h
⑼直接寻址
(与⑵题寻址方式一样,变量代表一个偏移地址)
ea=30000h+0200h(data的值)
偏移地址=0200h
⑽带段跨越前缀的寄存器的间接寻址
ea=35000h+0038
⒉
⑴立即数寻址
⑵寄存器寻址
⑶直接寻址
⑷寄存器寻址
⑸寄存器的间接寻址
⑹寄存器相对寻址
⒊
⑴寄存器相对寻址
ea=35f00h+0900h+06h=4df06h
⑵直接寻址
ea=15f00h+0900h=2df00h
⑶带段跨越前缀的基址加变址相对寻址
ea=25f00h+0670h+1001h=2c570h
⑷基址加变址的相对寻址
ea=15f00h+0670h+00b0h=16620h
累死了
!!!
⑴立即数寻址
2000送给al
2000h直接包含在代码段中
⑵直接寻址
ea(物理地址)=30000h(段值)+2000h(偏移地址)
=32000h
该指令ea为32000h的存储单元中的内容送给ax;
⑶寄存器寻址
将bx中的内容送给ax
执行后
(ax)=0038h;
⑷寄存器的间接寻址
ea(物理地址)=30000h(基址使用bx,默认段值在ds中)+00389(偏移地址)=30038h
⑸寄存器相对寻址
ea=30000h(默认段值在ds中)+0038(偏移地址)
+30h(位移量)=30068h
⑹基址加变址寻址
ea=40000h(基址使用bp,段值默认为ss)+0019h+0012h
=4002bh
偏移地址
=bp+si=0019h+0012h=002bh
⑺基址加变址的相对寻址
ea=30000h(默认段值在ds中)+0038h+0012h+10h
=3005ah
偏移地址=0038h+0012h+10h=005a
⑻带段跨越前缀的寄存器的间接寻址(段值在指定的es中)
ea=35000h(段值指定es中内容)+0038h
偏移地址=0038h
⑼直接寻址
(与⑵题寻址方式一样,变量代表一个偏移地址)
ea=30000h+0200h(data的值)
偏移地址=0200h
⑽带段跨越前缀的寄存器的间接寻址
ea=35000h+0038
⒉
⑴立即数寻址
⑵寄存器寻址
⑶直接寻址
⑷寄存器寻址
⑸寄存器的间接寻址
⑹寄存器相对寻址
⒊
⑴寄存器相对寻址
ea=35f00h+0900h+06h=4df06h
⑵直接寻址
ea=15f00h+0900h=2df00h
⑶带段跨越前缀的基址加变址相对寻址
ea=25f00h+0670h+1001h=2c570h
⑷基址加变址的相对寻址
ea=15f00h+0670h+00b0h=16620h
累死了
!!!
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
意法半导体(中国)投资有限公司
2023-06-12 广告
2023-06-12 广告
单片机汇编程序是用汇编语言编写的程序,用于控制单片机的操作。汇编语言是一种比较接近计算机硬件语言的低级语言,相对于高级语言来说更容易理解和实现。下面是单片机汇编程序的基本步骤:1. 将代码和数据汇编到规定的段中。2. 在存储器中用未初始化的...
点击进入详情页
本回答由意法半导体(中国)投资有限公司提供
展开全部
1.MOV
[SI],'A';
有错,应该指定内存的属性为字节,改为MOV
BYTE
PTR
[SI],'A'
2.MOV
AL,BX;有错,类型不匹配,AL为8位,BX为16位
3.MOV
BL,SI+2;有错,应该改为MOV
BL,[SI+2]
4.INC
[BX];正确
5.MOV
256,AL;有错,立即数256不能作为目的操作数
6.MOV
AX,BYTE
PTR
ALFA;有错,类型不匹配,AX为字,BYTE
PTR
ALFA指定字节
7.MOV
ALFA,BATA;有错,两内存单元不能直接操作
8.MUL
-25
;有错,MUL指令的操作数不能为立即数
9.PUSH
20A0H
;有错,PUSH指令的操作数不能为立即数
10.POP
CS
;有错,CS不能作为目的操作数
11.XCHG
[SI],3
;有错,XCHG指令中的操作数不能为立即数
12.MOV
IP,AX
;有错,IP不能通过MOV指令改变
13.SUB
[SI],[DI]
;有错,两内存单元不能直接操作
14.PUSH
DH
;有错,PUSH指令以字为单位进行操作,不能为字节DH
15.AND
AX,DS
;有错,DS不能作为AND指令的操作数
16.DIV
256
;有错,DIV指令的操作数不能为立即数
17.MOV
ES,1234H
;有错,立即数不能直接送段寄存器
18.MOV
CS,AX
;有错,CS不能作为目的操作数
19.SUB
DL,CF;有错,CF不能出现在指令的操作数中
20.MOV
AL,300
;有错,300超出字节表示范围
21.JDXZ
NEXT
;有错,无JDXZ指令
假设数据定义如下:
S1
DB
'GOOD
MORNING'
S2
DB
30
DUP('')
用串指令编写程序段分别完成以下功能:
1.从左到右把S1中的字符串传送到S2.
LEA
SI,S1
LEA
DI,S2
MOV
CX,S2-S1
CLD
REP
MOVSB
2.从右到左把S1中的字符串传送到S2.
MOV
CX,S2-S1
LEA
SI,S1+11
LEA
DI,S2+11
STD
REP
MOVSB
3.把S1中的第3和第4个字节装入AX.
MOV
AL,S1+2
MOV
AH,S1+3
4.把AX寄存器的内容存入从S2+5开始的字节中.
LEA
DI,S2+5
MOV
CX,12
CLD
REP
STOSW
5.检查S1字符串中有无空格字符,如有则把它传送给BH寄存器中
LEA
SI,S1
MOV
CX,S2-S1
MOV
AL,20H
CLD
REPNZ
SCASB
JNZ
TJ
MOV
BH,20H
TJ:RET
[SI],'A';
有错,应该指定内存的属性为字节,改为MOV
BYTE
PTR
[SI],'A'
2.MOV
AL,BX;有错,类型不匹配,AL为8位,BX为16位
3.MOV
BL,SI+2;有错,应该改为MOV
BL,[SI+2]
4.INC
[BX];正确
5.MOV
256,AL;有错,立即数256不能作为目的操作数
6.MOV
AX,BYTE
PTR
ALFA;有错,类型不匹配,AX为字,BYTE
PTR
ALFA指定字节
7.MOV
ALFA,BATA;有错,两内存单元不能直接操作
8.MUL
-25
;有错,MUL指令的操作数不能为立即数
9.PUSH
20A0H
;有错,PUSH指令的操作数不能为立即数
10.POP
CS
;有错,CS不能作为目的操作数
11.XCHG
[SI],3
;有错,XCHG指令中的操作数不能为立即数
12.MOV
IP,AX
;有错,IP不能通过MOV指令改变
13.SUB
[SI],[DI]
;有错,两内存单元不能直接操作
14.PUSH
DH
;有错,PUSH指令以字为单位进行操作,不能为字节DH
15.AND
AX,DS
;有错,DS不能作为AND指令的操作数
16.DIV
256
;有错,DIV指令的操作数不能为立即数
17.MOV
ES,1234H
;有错,立即数不能直接送段寄存器
18.MOV
CS,AX
;有错,CS不能作为目的操作数
19.SUB
DL,CF;有错,CF不能出现在指令的操作数中
20.MOV
AL,300
;有错,300超出字节表示范围
21.JDXZ
NEXT
;有错,无JDXZ指令
假设数据定义如下:
S1
DB
'GOOD
MORNING'
S2
DB
30
DUP('')
用串指令编写程序段分别完成以下功能:
1.从左到右把S1中的字符串传送到S2.
LEA
SI,S1
LEA
DI,S2
MOV
CX,S2-S1
CLD
REP
MOVSB
2.从右到左把S1中的字符串传送到S2.
MOV
CX,S2-S1
LEA
SI,S1+11
LEA
DI,S2+11
STD
REP
MOVSB
3.把S1中的第3和第4个字节装入AX.
MOV
AL,S1+2
MOV
AH,S1+3
4.把AX寄存器的内容存入从S2+5开始的字节中.
LEA
DI,S2+5
MOV
CX,12
CLD
REP
STOSW
5.检查S1字符串中有无空格字符,如有则把它传送给BH寄存器中
LEA
SI,S1
MOV
CX,S2-S1
MOV
AL,20H
CLD
REPNZ
SCASB
JNZ
TJ
MOV
BH,20H
TJ:RET
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询