有关汇编语言问题求解

img


以上这个程序为什么结果是91289128,这个程序是怎么得出来的啊?

输出结果为91289128,是由程序中的dispmsg过程计算出来的。

程序中的dispmsg过程的作用是将存储在内存中的一段数据输出到控制台上。在这个程序中,dispmsg过程的参数为一个指向wvar6变量的指针。wvar6变量是一个16位无符号整数类型的变量,它的初始值为0。

在dispmsg过程中,程序首先将指针指向的地址压入堆栈中,然后使用printf函数将该地址处的内容作为16位无符号整数输出到控制台上。由于程序中的wvar6变量占用了两个字节的内存空间,因此dispmsg过程实际上会输出两个16位无符号整数。这两个无符号整数的值分别为39h和31h,它们的十进制值分别为57和49。

由于程序中只调用了一次dispmsg过程,因此程序的输出结果为57*65536+49=91289128。

不知道你这个问题是否已经解决, 如果还没有解决的话:

如果你已经解决了该问题, 非常希望你能够分享一下解决方案, 写成博客, 将相关链接放在评论区, 以帮助更多的人 ^-^