汇编程序加法-汇编程序加法计算
文章阐述了关于汇编程序加法,以及汇编程序加法计算的信息,欢迎批评指正。
文章信息一览:
关于王爽的汇编语言的加减乘除指令
1、第3个仍然可以正确执行。因为如果把end指令后的标号start去掉后,编译器便会顺序执行程序。换句话说:当未给编译器预先的通知,要求其从哪开始执行程序时,编译器就自动以至上向下的顺序进行编译执行源程序。
2、其实这道题的答案应该是不唯一的。你可以写F4A3H,也可以写62627,还可以写1111010010100011B,注意要加上B的后缀,表示二进制。不管是什么进制的,其值都一样,机器里的值都是用二进制存的,十六进制是二进制的简写,因为0101的太长了,所以才会发明十六进制;而十进制是人们习惯的写法。
3、我比较纠结的是,题里所说的“转移位移”到底是指bx还是指add [bp+2],bx后(即“模拟loop指令”的转移位移)的,所以有了上边的两种答案。我也看了一些其他的答案,有说FFFFH的,这个还好明白些。不过最多的答案还是8000H~7FFFH 即(-32768~32767),这个我就想不通了(也不想多往这方面想)。
4、H = EA × 16 + XXXXH(偏移地址)当,偏移地址最大时,段地址就是最小。要注意,偏移地址的最低位,就是物理地址的最低位。物理地址已经给定 20000H,其最低位是零。所以,XXXXH(偏移地址)的最大值,也就是 FFF0H。由此可得:EA(最小)=1001H 。
5、你注意看最后一次的r输出,2000:0eh = 3123h,这个结果是正确的,就是你第一次压入到栈里的ax。而2000:08h = 010fh,2000:0ah = 073fh,而073fh:010fh就是push ax这条指令的地址。CPU在你用t命令单步调试的时候,自动做了一些压栈操作。所以,如果你用t命令调试程序,建议你把sp设置大点。
关于汇编程序加法,以及汇编程序加法计算的相关信息分享结束,感谢你的耐心阅读,希望对你有所帮助。