and ax, 0FFH ;获取低四位的值 eg: 0111 1101 ; 设这个是AX的存放的值 and 0000 1111 ; 0FFH 的二进制 -------------- 0000 1101 ; AX的最终结果
eg: 0110 0001 and 1101 1111 -------------- 0100 0001
eg: 0111 1101 ; 设这个是AX的存放的值 or 0000 1111 ; 0FFH 的二进制 -------------- 0111 1111 ; AX的最终结果
db ‘ABCDEFG‘ mov ax, ‘a‘ ; 0061H mov al, ‘a‘ ; 0061H mov ah, ‘a‘ ; 6100H
eg: mov ax, [200+bx] mov ax, 200[bx] mov ax, [bx].200
eg: mov ax, bx mov ax, [si] mov ax, [di] mov ax, [bx+123] mov ax, [si+123] mov ax, [di+123]
mov ax, [bx+di] mov ax, [bx][di]
assume cs:code, ss:stack a segment db ‘1. file ‘ db ‘2. edit ‘ db ‘3. search ‘ db ‘4. view ‘ db ‘5. option ‘ db ‘6. help ‘ a ends stack segment dw 0, 0, 0, 0, 0, 0, 0, 0 stack ends code segment start: mov ax, a; mov ds, ax mov bx, 0 mov cx, 6 Loop1: mov al, 3[bx+si] and al, 0DFH mov 3[bx], al add bx, 16 loop Loop1 mov ax, 4c00h int 21 code ends end start
assume cs:code, ss:stack a segment db ‘ibm ‘ db ‘dec ‘ db ‘dos ‘ db ‘vax ‘ a ends stack segment dw 0, 0, 0, 0, 0, 0, 0, 0 stack ends code segment start: mov ax, a; mov ds, ax mov ax, stack mov ss, ax mov ax, 0 mov bx, 0 mov cx, 4 Loopfloor1: mov si, 0 push cx mov cx, 3 Loopfloor2: mov al, [bx+si] and al, 0DFH mov [bx+si], al inc si loop Loopfloor2 add bx, 10H pop cx loop Loopfloor1 mov ax, 4c00h int 21 code ends end start
assume cs:code, ss:stack a segment db ‘1. display ‘ db ‘2. brows ‘ db ‘3. replace ‘ db ‘4. modify ‘ a ends stack segment dw 0, 0, 0, 0, 0, 0, 0, 0 stack ends code segment start: mov ax, a; mov ds, ax mov ax, stack mov ss, ax mov sp, 20H; mov ax, 0 mov bx, 0 mov cx, 4 Loopfloor1: push cx mov si, 0 mov cx, 4 Loopfloor2: mov al, 3[bx+si] and al, 0DFH mov 3[bx+si], al inc si loop Loopfloor2 add bx, 10H pop cx loop Loopfloor1 mov ax, 4c00h int 21 code ends end start ;大佬思路: ; mov bx, 0 ; mov cx, 4 ;upRow: push cx ; push bx ; mov cx, 4 ; ;upLetter: mov al, ds:[bx+3] ; and al, 11011111B ; mov ds:[bx+3], al ; inc bx ; loop upLetter ; ; pop bx ; pop cx ; add bx, 16 ; loop upRow ;少用一个寄存器,甘拜下风
原文:https://www.cnblogs.com/daker-code/p/12435740.html