![](/img/trans.png)
[英]My program runs well, but why is it giving me an Attribute Error after it exits?
[英]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.