簡體   English   中英

如何檢查程序集8086程序是否運行良好

[英]How do I check if my assembly 8086 program runs well

我想把0到9之間的數字放到400h到409h的存儲單元中。 因此,例如在400h - > 0(放0)和401h - > 1(放1)..... 409h(放9)。 到目前為止這是我的代碼:(我不知道它是否有效)

 IDEAL
MODEL small
STACK 100h
DATASEG
;----------

;----------
CODESEG
start:
mov ax , @data
mov ds , ax
mov es, ax
;----------
mov si , 400h
mov cx , 10
mov al , 0
agian:
mov [si],al

inc si
inc al
loop agian
;--------
exit: 
 mov ax,4c00h
 int 21h
 END start 

有一種非常簡單的方法可以查看您的程序是否有效。 只需在視頻內存中寫入值即可。 這樣你就會知道它是否有效。

start:
 mov  ax, 0B800h     ;NEW
 mov  ds, ax
 mov  es, ax
 ;----------
 mov  si, 400h
 mov  cx, 10
 mov  al, 48         ;NEW value 0 -> character 0
agian:
 mov  [si], al
 add  si, 2          ;NEW 1 character occupies 2 bytes in video memory
 inc  al
 loop agian
 mov  ah,00h         ;NEW wait for a keystroke so you can actually see
 int  16h            ;NEW ... the output

如果你可以花時間學習使用DOS實用程序DEBUG.EXE 除此之外,它還允許您單步執行程序並查看內存。

檢查ASM代碼是否按預期方式工作的最簡單方法是在調試器中運行它。 如果您在Windows上運行, OllyDbg 2將是一個很好的候選者 - 它將顯示寄存器的當前值,堆棧狀態等,以便您可以看到它們在您單步執行代碼時如何更改。 您也可以修改OllyDbg內部的代碼。

您可以使用int 3指令在代碼中編寫斷點,或使用調試器在運行時放置斷點。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM