彙編實驗(二)

2021-06-27 09:38:12 字數 1433 閱讀 4814

;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...