-
在版本(XP系統)下,除錯通過。
dseg segment
buf db 5,-4,0,3,100,-51cnt dw $-bufplus db "y=1",0ah,0dh,"$"
zero db "y=0",0ah,0dh,"$"
minu db "y=-1",0ah,0dh,"$"
dseg ends
cseg segment
assume cs:cseg,ds:dsegbegin: mov ax,dsegmov ds,ax
lea si,buf
mov cx,cnt
next: mov al,[si]and al,al
js fujz ling
lea dx,plus
jmp disp
fu: lea dx,minujmp disp
ling: lea dx,zerodisp: mov ah,9
int 21h
inc si
loop next
mov ah,4ch
int 21h
cseg ends
end begin
-
這是乙個具有兩個週期結構的程式。
外迴圈:控制讀字元,確定“e”是否決定迴圈是繼續還是結束;
內迴圈:通過向左移動並判斷CF標誌的狀態來記錄“1”的出現次數。
步驟如下,並且已經過除錯。
cseg segment
assume cs:cseg
begin:
mov ah,1
int 21h;輸入字元。
cmp al,'e'
jz stop;如果是“e”,則轉到 stopxor dl, dl; 暫存器零用於記錄 1 個數字。
mov cx,8;內層迴圈 8 次。
next: shl al,1;向左移動 1 位,最高是 cfjnc 跳過; 如果 cf=0,則轉到 skipinc dl; CF=1,下行增加1
skip: loop next;cx-1,如果 cx 不為零,則進入下乙個迴圈執行。
or dl,30h;將 1 的出現次數轉換為相應的 ASCII 程式碼。
mov ah,2
int 21h;呼叫數字 2 函式以顯示 1 的次數。
mov dl,0ah
int 21h
mov dl,0dh
int 21h;顯示包裝回車。
jmp begin;轉到“開始”並閱讀下乙個字元。
stop: mov ah,4ch
int 21h;程式結束。
cseg ends
end begin
-
mov ax,var
cmp ax,0 )
jz zero ;等於 0,則轉。
jg great;如果它大於 0,它將被轉動。
mov ax, 0ffffh;小於 0
jmp short next
zero: mov ax,0
jmp next )
great: mov ax,0001h
next: mov result,ax
-
① inc s10 ;100 的數字加到 1
jmp short change_addr ;short 是偽命令,重定向的標籤是 change addr
loop compare ;迴圈。
-
data1 以對應於 (256-35)、33H、35H 的十六進製數開頭
data2 從對應的十六進製數的下 16 位數字開始,對應於 (65536-35),上十六位數字,33H,00,00,00,35H,00,00,00
-
data1 dd,35
data2 ffdd,0035
但在記憶體中,儲存有高有低。 也就是說,高位在高位,狀態在低位。
我不知道你跟他說了什麼,也不知道你之前做了什麼對不起朋友的事情,怎麼就變成了一頓散餐,就算你罵你,我也不知道該罵你什麼,怎麼評價你? >>>More
好吧,不要說我沒有告訴你,星座是基於陽曆的。 因此,首先使用萬年歷來確定您的太陽生日是 1993 年 10 月 23 日星期六。 另外,我從來沒聽說過星座運勢必須分為上午和下午兩部分 >>>More