问题描述
- 求助! 汇编程序出现奇怪的现象
-
以下程序用来实验,打印出cs寄存器的值 以及 观察'$'的作用。问题一,下面的程序引导之后cs的值打印了两次(应该只打印一次的),但是在原本的 jmp $之后再加一句jmp $就只打印一次
问题二,
;mov eax,0
;mov eax,$
;call show
这段去掉注释符后,运行,并没有任何显示。org 0x7c00 mov ax,cs mov ss,ax mov sp,0x7f00 mov ax,0xb800 mov es,ax mov ebx,0 mov ecx,0 mov eax,0 mov ax,cs call show ;mov eax,0 ;mov eax,$ ;call show jmp $ ;jmp $ show: mov ecx,eax shr ecx,28 add ecx,0x0730 mov word [es:ebx],cx add bx,2 mov ecx,eax and ecx,0x0FFFFFFF shr ecx,24 add ecx,0x0730 mov word [es:ebx],cx add bx,2 mov ecx,eax and ecx,0x00FFFFFF shr ecx,20 add ecx,0x0730 mov word [es:ebx],cx add bx,2 mov ecx,eax and ecx,0x00FFFFF shr ecx,16 add ecx,0x0730 mov word [es:ebx],cx add bx,2 mov ecx,eax and ecx,0x00FFFF shr ecx,12 add ecx,0x0730 mov word [es:ebx],cx add bx,2 mov ecx,eax and ecx,0x00FFF shr ecx,8 add ecx,0x0730 mov word [es:ebx],cx add bx,2 mov ecx,eax and ecx,0x00FF shr ecx,4 add ecx,0x0730 mov word [es:ebx],cx add bx,2 mov ecx,eax and ecx,0x00F add ecx,0x0730 mov word [es:ebx],cx add bx,4 ret times 510-($-$$) db 0 dw 0xaa55
解决方案
汇编指令不同的cpu有不同的定义,再说提问的时候一定要说明在什么cpu上的汇编,机体型号,或者是电脑?说清楚了才有人回答。
时间: 2024-09-08 23:55:10