;test 和 and 區別在於不改變op1
;shr 如果要多移幾次 mov cl, 4 shr dl, cl
;判斷陣列裡正負數 並分開存放
assume cs:code, ds:data
data segment
m db 1, 2, -3, 4, 5, -6, 7, 8, -9, 10, 11, -12, 13, 14, -15, 16, 17, -18, 19, 20
p db 20 dup(?)
n db 20 dup(?)
data ends
code segment
start:
mov ax, data
mov ds, ax
lea si, p ;正數計數
lea di, n ;負數計數
lea bx, m
xor ax, ax
xor dx, dx
mov cx, 20
l1:mov al, [bx]
test al, 80h
jz l2 ;z 運算結果為零時 z = 1
mov [di], al ;z = 1 說明符號位為1 即為負數
inc bx
inc di
inc dh
jmp l3
l2: ;z = 0 說明是正數
mov [si], al
inc bx
inc si
inc dl
l3:loop l1
mov cx, 2
l5:push cx
mov bl, dl
mov cl, 4
shr dl, cl
pop cx
and dl, 0fh
cmp dl, 10
jb l4
add dl, 7
l4:add dl, 30h
mov ah, 2
int 21h
mov dl, bl
and dl, 0fh
cmp dl, 10
jb l6
add dl, 7
l6:add dl, 30h
mov ah, 2
int 21h
mov dl, 0ah
mov ah, 2
int 21h
mov dl, 0dh
mov ah, 2
int 21h
mov dl, dh
loop l5
mov ah, 4ch
int 21h
code ends
end start
彙編實驗二
1 從buf單元開始存有一字串 長度 255 程式設計實現統計該字串中的ascii在42h 45h之間的字元個數,並將統計結果以二進位制形式顯示在螢幕。486 data segment use16 buf db abcd count equ buf data ends code segment us...
彙編實驗二
1 使用e命令修改0021 0 0021 f資料,及修改後檢視是否正確寫入的操作 可以看出是正確的。2 使用a命令輸入指令 3 執行命令 將結果填在書上 2.1 使用a命令輸入指令,使用e命令修改2000 0 2000 f的值,及修改後檢視的部分 2 單步除錯每一行彙編指令 第一行 給ax賦值 第三...
彙編實驗二
實驗結論 1 在使用 a 命令輸入指令除錯前,使用 e 命令將記憶體單元0021 0 0021 7連續 8個位元組資料修改為30h,31h,32h,33h,34h,35h,36h,37h 輸入指令 一條一條執行 書上的填空內容為ax 3130 ax 6465 bx 3534 bx 6c6a sp 0...