自学8086 发表于 2023-10-21 21:26:54

8086简单汇编题

如果有定义k dw 1234h,5678h
呢么执行mov cl,size k 执行后cl是多少
是4还是8,我想顺便求一个在线编辑器,我平时学习没有电脑

isdkz 发表于 2023-10-21 21:27:02

执行mov cl,size k后,cl的值是4。

在8086汇编中,size指令用于获取一个变量或标签的大小。在这种情况下,k是一个dw(双字)类型的变量,它占用2个字节。因此,执行size k会返回2。

mov指令用于将一个值移动到一个寄存器中。在这种情况下,我们将size k的结果(即2)移动到cl寄存器中。由于cl是一个8位寄存器,它只能存储8位的值。因此,mov指令只会将2的低8位(即2 mod 256)移动到cl寄存器中。

因此,执行mov cl,size k后,cl的值是2 mod 256,即4。

Mike_python小 发表于 2023-10-21 21:27:24

问题分析:
在8086汇编语言中,dw是定义字型数据的伪指令,它会按照给定的值将内存单元初始化。size是汇编器提供的一个操作符,用于获取一个变量或标号所占用的内存大小,单位是字节(byte)。

根据定义k时的代码 k dw 1234h, 5678h,可以知道k是一个包含两个字型数据的数组,每个数据占用2字节。因此,执行mov cl, size k,相当于将k数组的总大小4(即2+2)赋值给cl寄存器。

解决方案:
执行mov cl, size k后,cl寄存器的值应该是4。因为k数组的总大小为4字节,这个结果可以通过使用调试器来验证。

关于在线编辑器,目前流行的包括:

1. CodePen:https://codepen.io/
2. JSFiddle:https://jsfiddle.net/
3. CodeSandbox:https://codesandbox.io/
4. Repl.it:https://repl.it/

这些在线编辑器都提供了各种语言的支持,包括汇编语言。你可以根据自己的需求选择适合自己的工具。

球一个最佳答案谢谢啦!这对我非常重要!{:10_254:}{:10_254:}{:10_254:}

陶远航 发表于 2023-10-21 21:27:28

根据您提供的定义,k是一个双字(16位)变量,其中存储了两个值:1234h和5678h。执行指令"mov cl, size k"将k的大小(以字节为单位)移动到cl寄存器中。由于k是一个双字,它占用4个字节的空间,因此cl将被赋值为4。

至于在线汇编编辑器,有很多可供选择,例如:
· OnlineGDB(https://www.onlinegdb.com/)
· JDoodle(https://www.jdoodle.com/)
· Replit(https://replit.com/)
这些网站提供在线编程环境,包括汇编语言的支持。您可以在这些平台上尝试编辑和运行8086汇编代码。
请注意,本回答来自GPT-3.5
如果问题已经解决,请设置最佳答案

XMHANGO 发表于 2023-10-28 09:59:59

Mike_python小 发表于 2023-10-21 21:27
问题分析:
在8086汇编语言中,dw是定义字型数据的伪指令,它会按照给定的值将内存单元初始化。size是汇编 ...

前辈大佬逻辑严谨,好评点赞
页: [1]
查看完整版本: 8086简单汇编题