匯編語言cmp和jmp是什么意思 JMP在匯編里是什么意思?
JMP在匯編里是什么意思?Jmp是無條件跳轉指令。遇到jmp就跳。跳轉指令不僅僅是jmp,jmp是無條件跳轉。jmp要配合條件跳轉指令使用,比如C語言程序:s0;for(int i0;i10I){ s
JMP在匯編里是什么意思?
Jmp是無條件跳轉指令。遇到jmp就跳。跳轉指令不僅僅是jmp,jmp是無條件跳轉。jmp要配合條件跳轉指令使用,比如C語言程序:s0;for(int i0;i10I){ s I;}可以編譯成相當于以下匯編代碼的指令:
Mov: CMP : MOVs,
用匯編語言編寫,判斷鍵盤輸入的是否是Y若輸入的是Y則顯示YES Y若不是則顯示NOT Y?
首先用1號函數(shù)輸入一個字符,與cmp指令進行比較,然后分別輸出需要的兩個字符串。這個程序可以顯示 "YESY "大寫和小寫的y。如果只有大寫 "Y "是輸出所必需的,只需刪除行 "安達爾,11011111b "在節(jié)目中。
assumecs:cod:datadatasegmentyesydbeyesy $ notydbNOTY $ dataendscod: movax,datamovds,axmovah,1int21handal,11011111b如果輸入小寫字母,則轉換為大寫CMP al,yjzyl: l:
我們知道MBR分區(qū)的硬盤最多可以設置四個主分區(qū),每個主分區(qū)可以安裝不同的操作系統(tǒng)。被設置為活動分區(qū)后,對應分區(qū)下的操作系統(tǒng)就可以啟動了。
該日志記錄了硬盤MBR啟動代碼的修改,在啟動過程中動態(tài)修改硬盤的活動分區(qū),從而實現(xiàn)不同操作系統(tǒng)的啟動。
1.默認引導已被設置為活動分區(qū)的主分區(qū)。
2.電腦啟動時,按右shift鍵啟動第一個主分區(qū)(hd0,0)。
3.電腦啟動時,按左shift鍵啟動第二個主分區(qū)(hd0,1)。
4.電腦啟動時,按ctrl啟動第三個主分區(qū)(hd0,2)。
5.電腦啟動時,按alt啟動第四個主分區(qū)(hd0,3)。
我沒有。;不改變硬盤的啟動代碼,只是在我添加的東西的開頭改了一個跳轉代碼。代碼執(zhí)行。添加的代碼所占用的空間就是原始MBR錯誤信息所在的空間。我減少了錯誤信息,所以如果有錯誤,仍然會有提示。
實施流程:
1.運行硬盤分區(qū)軟件,將MBR保存為文件MBR.DAT。
2.在XP DOS命令行下運行DEBUG,按照設想的功能進行匯編,然后反匯編得到機器碼;
3.用UltraEdit打開MBR.dat文件,把機器碼一個一個輸入到對應的地址。將偏移地址25和26的值從# 341c # 34和# 3406 # 34更改為# 3462 # 34和# 3407 # 34(跳轉到附加代碼執(zhí)行)。。
4.將修改后的MBR.dat文件寫回硬盤的第一個扇區(qū)。
這是第一種修改方法:(添加的代碼是MBR的錯誤信息所在的地址。這種MBR具有較少的錯誤信息和緊湊的空間。)
添加的代碼從MBR的第354個字節(jié)開始,具體代碼如下:
0000:0762 B402 MOV啊,02
0000 : 0764 CD16 INT 16
0000:0766 240F和AL,0F
0000 : 0768 3c 00 CMP AL,00
0000 : 076 a 7438 JZ 07a 4
#是否按下了右shift鍵?
0000:076C A801測試AL,01
0000 : 076 e 750 c JNZ 077 c
#是否按下了左移鍵?
0000:0770 A802測試AL,02
0000 : 0772 750d JNZ 0781
ctrl鍵是否按下?
0000:0774 A804測試AL,04
0000 : 0776 750 :0778 A808測試AL,08
0000 : 077 a 750 f JNZ 078 b
#第一個主分區(qū)激活字節(jié)地址
0000 : 077 c bbb: 077 f : 0781 bbce 07 MOV BX 07C: 0784 : 0786 bbd: 0789 : 078 b bb:078: 0790 8826 b: 0794 8826 ce 07 MOV[07C: 0798 8826 de 07 MOV[07DE],啊