?? adcdemo.asm
字號:
STACK segment STACK
db 100h dup (0)
STACK ends
data_seg segment
A1 dw 0a000h ;a000h前面加一個'0'的意思,是防止報錯,
;MASM會將a000h當成一個變量,而0a000h則是一個數字。
B1 dw 7000h
A2 dw 00a7h
B2 dw 006ah
data_seg ends
code_seg segment
assume cs:code_seg, ds:data_seg, ss:STACK
start: mov ax, STACK
mov ss, ax ;堆棧段寄存器初始化
mov ax, data_seg
mov ds, ax ;數據段寄存器初始化
;兩個32位數字相加
; 00a7 a000h
; + 006a 7000h
; ----------------
; | |
; v v
; DX AX
; = 0112 1000h
mov ax, A1 ;取低16位數字
add ax, B1 ;與另一個低16位數字相加,注:是不帶進位的相加
mov dx, A2 ;取高16位數字
adc dx, B2 ;與另一個高16位數字相加,注:是帶進位的相加
;這里,經過運算后,DX中存放的32位運算結果的高16位
; AX中存放的32位運算結果的低16位
mov ax, 4c00h
int 21h ;DOS中斷調用的功能號為ah = 4ch, DOS程序正常退出
code_seg ends
end start
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -