这是我的程序
display macro msg
lea dx,msg
mov ah,09h
int 21h
endm
.model small
.data
msg1 db 10h,13h,"Enter row$"
msg2 db 10h,13h,"Enter Column$"
row db ?
col db ?
.code
mov ax,@data
mov ds,ax
display msg1
call read
mov row,al
display msg2
call read
mov col,al
mov ah,00
mov al,3
int 10h
mov ah,02
mov bh,00
mov dh,row
mov dl,col
int 10h
mov ah,01h
int 21h
mov ah,4ch
int 21h
read proc
mov ah,01
int 21h
and al,0fh
mov bl,al
mov ah,01
int 21h
and al,0fh
mov ah,bl
MOV CL,4
SHL AH,CL
ADD AL,AH
ret
read endp
end
所以我知道行和列的位置应该是12和40,以便将它放在屏幕的中心,但是使用这个程序,它的位置不会出现在中心位置。
我认为问题是当我接受输入时,因为当我将行值直接设置为12并且将列值设置为40时将其放入dh并且DL寄存器直接将光标放在中心。
有人能帮帮我吗?感谢
答案 0 :(得分:2)
mov ah,bl
MOV CL,4
SHL AH,CL
ADD AL,AH
ret
在此代码中,将十分之一乘以 16。您需要乘以10.一种简单的方法是使用aad
指令。
mov ah,bl
aad ;This is AH * 10 + AL
ret
答案 1 :(得分:0)
对于那些没有写过它的人来说,装配中一条未注释的线条往往是一个难以理解的混乱。
让我们一步一步来做:
String serializedResult = JsonConvert.SerializeObject(jsonContactsGroups);