几个简单的汇编语言问题

1.判断下列汇编语句的正确性并说明原因MOV[AX],BHMOV[SP],AXOUT10H,CLCMP36H,AL2.标号作符号地址使用,出现在操作数域时,语句JMPBE... 1.判断下列汇编语句的正确性并说明原因
MOV [AX],BH
MOV [SP],AX
OUT 10H,CL
CMP 36H,AL
2.标号作符号地址使用,出现在操作数域时,语句JMP BEGIN 中符号BEGIN表示的是目标地址;而在语句LOOP BEGIN中却是同时表示目标地址和偏移地址,它们之间有什么区别吗?为什么要有这样的区别呢?
3。段边界定义SEGMENT.....END和过程定义PROC...ENDP和模块定义NAME....END有什么区别?谢谢
间接寻址只能用bx,dx,si,di吗?out和in的操作只能用ax,dx吗?
展开
 我来答
liaozhiwmy
2012-02-11 · TA获得超过433个赞
知道小有建树答主
回答量:144
采纳率:100%
帮助的人:128万
展开全部
1.判断下列汇编语句的正确性并说明原因
MOV [AX],BH ;错,AX不能加方括号来访问地址
MOV [SP],AX ;错,SP不能加方括号
OUT 10H,CL ;错,OUT指令中源操作数只能是AX或AL
CMP 36H,AL ;错,CMP指令中目的操作数不能为立即数
2.标号作符号地址使用,出现在操作数域时,语句JMP BEGIN 中符号BEGIN表示的是目标地址;而在语句LOOP BEGIN中却是同时表示目标地址和偏移地址,它们之间有什么区别吗?为什么要有这样的区别呢?
JMP指令可以访问内存的任何空间,LOOP则只能访问—128~+127之间的内存空间,所以是相对位移。
3。段边界定义SEGMENT.....END和过程定义PROC...ENDP和模块定义NAME....END有什么区别?谢谢问题补充:
这个要去了解段、过程和模块的区别。
间接寻址只能用bx,dx,si,di吗?out和in的操作只能用ax,dx吗?
间接寻址只能用bx,dx,si,di。out和in的操作中只能用ax,al,dx和0~255的立即数端口地址
追问
问题2中,你说“LOOP则只能访问—128~+127之间的内存空间”,但是这样怎么表示“目的地址”呢?目的地址是20位,偏移地址是16位,是吗?
追答
目的地址是20位,不过它是由段地址和偏移地址来得到,段地址和偏移地址都是16位,20位的物理地址=段地址*10H+偏移地址,LOOP指令是程序段的,所以它的段地址是在CS中,偏移地址由LOOP指令的偏移地址加后面标号的偏移量得到。
百度网友3b1b680
2012-02-07 · TA获得超过966个赞
知道小有建树答主
回答量:978
采纳率:33%
帮助的人:621万
展开全部
1.没对的。【】里面的应该是bx,DX,DI,SI。out不应该用cl寄存器。CMP AL,36H
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
gaifugang
2012-02-09
知道答主
回答量:81
采纳率:0%
帮助的人:24.5万
展开全部
里面的应该是bx,DX,DI,SI。out不应该用cl寄存器。CMP AL,36H
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(1)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式